哪些编解码器最适合在Windows XP上使用Windows Media Player播放?


16

我需要将短视频编码为可以在Windows XP上使用Windows Media Player播放的格式,而无需安装任何其他编解码器。对于重新编码过程,我使用的是ffmpeg。

我已经尝试过msmpeg4v2编解码器,但是质量太差了(与原始视频相比,您看到的是大“块”),因此我正在寻找其他开箱即用且质量至少为“ OK”的编解码器。

由于注释表明它可能不是编解码器而是比特率问题,因此这是我使用的命令:

ffmpeg -i x.flv -vcodec msmpeg4v2 -acodec adpcm_ima_wav x.avi

输出:

Input #0, flv, from 'x.flv':
  Metadata:
    moovPosition    : 39337765
    avcprofile      : 100
    avclevel        : 30
    aacaot          : 2
    videoframerate  : 25
    audiochannels   : 2
  Duration: 00:06:19.52, start: 0.000000, bitrate: 836 kb/s
    Stream #0:0: Video: h264 (High), yuv420p, 702x396 [SAR 2596:3679 DAR 354:283], 25 tbr, 1k tbn, 50 tbc
    Stream #0:1: Audio: aac, 48000 Hz, stereo, s16
w:702 h:396 pixfmt:yuv420p tb:1/1000000 sar:2596/3679 sws_param:
Output #0, avi, to 'x.avi':
  Metadata:
    moovPosition    : 39337765
    avcprofile      : 100
    avclevel        : 30
    aacaot          : 2
    videoframerate  : 25
    audiochannels   : 2
    ISFT            : Lavf53.32.100
    Stream #0:0: Video: msmpeg4v2 (MP42 / 0x3234504D), yuv420p, 702x396 [SAR 2596:3679 DAR 354:283], q=2-31, 200 kb/s, 25 tbn, 25 tbc
    Stream #0:1: Audio: adpcm_ima_wav ([17][0][0][0] / 0x0011), 48000 Hz, stereo, s16, 384 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (h264 -> msmpeg4v2)
  Stream #0:1 -> #0:1 (aac -> adpcm_ima_wav)
Press [q] to stop, [?] for help
frame= 9485 fps=436 q=31.0 Lsize=   31197kB time=00:06:19.48 bitrate= 673.5kbits/s
video:12628kB audio:17913kB global headers:0kB muxing overhead 2.149820%

3
也许问题出在您的比特率,而不是您的编解码器。Windows系统首选的编解码器很可能是某种WMV
Der Hochstapler,2012年


在此处查看我的答案以获取指向官方Microsoft常见问题解答的链接。但从本质上讲,您受困于Windows Media Video – FFmpeg无法制作。因此,无论您尝试过还是尝试过。正如@Oliver已经说过的那样,请尝试更高的比特率或质量设置。我认为它只使用默认值。
slhck 2012年

MPEG编解码器的好处不是大小,而是它不是像AVI这样的容器,而且它是一种基于流的文件,可以通过硬件编码器记录下来,用于独立播放器的DVD介质上,并且可以轻松地对其进行编辑。因此,很明显,您要问的是一种可以使用FFMPEG编码的电影格式,它将产生您满意的大小,并且可以与Windows Media Player一起使用,而无需进行任何其他下载。正确?
Bon Gart 2012年

是。WMV也很好。我得到的质量相同-也许比特率确实存在问题。
ThiefMaster 2012年

Answers:


12

由于您未指定其他任何内容,因此您的视频流设置为使用q=2-31, 200 kb/s。这导致了673.5kbits平均水平,这是不是很多,至少不会对非H.264编解码器。

尝试强迫

  • -b:v 1000K例如某个特定的比特率 对于较旧的FFmpeg版本,您只能使用-b
  • 固定质量等级,-qscale 2例如。此处的值范围是1到31。sane值qscale的范围是2到5左右。只需尝试看看能达到最佳效果的方法即可。

默认情况下,Windows上真正支持的编解码器

今天有数百种音频和视频编解码器在使用。其中一些是由Microsoft创建的,但是绝大多数编解码器是由其他公司,组织或个人创建的。默认情况下,Windows操作系统和播放器包含许多最受欢迎的编解码器,例如Windows Media Audio,Windows Media Video和MP3。

另请参阅Windows Media Player支持的多媒体文件类型以获取更多信息。

使用FFmpeg,您可以尝试mpeg1video(MPEG-1)或mpeg2video(MPEG-2)或msmpeg4(MPEG-4 Part II),但是我不确定后者是否受到普遍支持。如果您想安全播放,则必须使用MPEG-1或MPEG-2。


是的...对于mpeg文件而言,这是一个非常低的比特率。
Bon Gart 2012年

h 我不得不说,这些天我们真的很幸运。
slhck 2012年

特别是考虑到您正在用DVD观看2k的4k到5k的小时(当然,您可以走得更高,但这总是让我在光盘上留出足够的空间来容纳AVI文件和图像等)
Bon Gart

7

我的aac / h264 .mp4文件有一个类似的问题,该文件最初在Windows Media Player(Windows 7)中可以正常播放。在我用VirtualDub编辑并保存为.avi格式,然后使用ffmpeg默认值将其转换回aac / h264 .mp4之后,它将不再在Windows Media Player中播放。

使用MediaInfo比较原始文件和最终文件,我注意到使用了不同的编码配置文件,以及不同的色度二次采样设置(4:2:0,最终4:4:4)。通过使用以下选项用ffmpeg重新编码,WMP能够正确播放文件:

ffmpeg  -i edited.avi -pix_fmt yuv420p fixed.mp4

1
请参阅trac.ffmpeg.org/wiki/Encode/H.264#Encodingfordumbplayers,其中提到了使用-pix_fmt yuv420p并支持该想法。
用户

我刚刚在Windows 10上对此进行了测试。仅通过添加-pix_fmt yuv420p即可在Microsoft应用程序(内置播放器和Movie Maker)中打开mp4。
Nux


0

由于AVI容器已经支持两种编解码器,因此您只需执行

ffmpeg -i x.flv -vcodec copy -acodec copy x.avi

假设您的XP支持h.264,否则我将使用wmv文件,相同的量化器,并让ffmpeg填写编解码器。这应该为您提供与原始版本几乎相同的质量:

ffmpeg -i x.flv -sameq x.wmv

2
我以某种方式怀疑纯XP是否支持h.264
ThiefMaster 2012年

2
-sameq不应用于转换不具有相似量化比例的格式。此选项并不意味着与所暗示的文档“质量相同”。另外,不建议在AVI中使用H.264(尽管无损H.264 [无b帧]应该可以)。
llogan 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.