下面的命令执行没有错误。
ffmpeg -i thevideo.mkv outvideo.avi
Run Code Online (Sandbox Code Playgroud)
随后尝试在 Windows Media 播放器中播放 outvideo.avi 引发此错误
You may need an additional video decoder to play this file.
This file contains a track in an unknown format (code "ARGB") format. You may need to
install a DirectShow decoder for this video format in order to play this file.
Run Code Online (Sandbox Code Playgroud)
Windows Media 播放器提供的错误详细信息表明播放视频需要 mpg2 编解码器。如何告诉 ffmpeg 转码为 Windows Media Player 支持的视频编解码器?
您不能,因为ffmpeg
它本身不知道您的系统上安装了哪些编解码器,并且 Windows Media Player 可以访问这些编解码器。这是因为ffmpeg
使用自己的libavcodec和libavformat库进行编码和解码。因此,生成的视频ffmpeg
不一定要在 Windows Media Player 中播放。
您可能需要为此视频格式安装 DirectShow 解码器才能播放此文件。
这是您最终必须做的事情,因为 Windows 并未随附所有可能的编解码器。事实上,Windows 7 之前的版本几乎没有额外的编解码器,需要用户安装像K-Lite或CCCP这样的编解码器包。但是,您不能假设每台 PC 都安装了这些,并且您可能希望使用 VLC 等媒体播放器发送视频,该播放器提供自己的编解码器并且不依赖于 Windows
不过,您可能应该在每台新的 Windows 机器上安装额外的多媒体编解码器。
根据有关 Windows Media Player 支持的多媒体文件类型的信息,有一些本机支持的格式,但它们并不太具体。如果您想安全起见,您可能应该转换为 Windows Media Video (wmv)。对于其他一切,好吧,这就是微软所说的:
如果计算机上安装了适当的编解码器,则使用各种编解码器压缩的音频内容或视频内容可以存储在 .avi 文件中并在 Windows Media Player 中播放。.avi 文件中经常使用的视频编解码器包括以下编解码器 [...]
ffmpeg 的 FAQ更具体一些。他们说:
Windows 支持哪些编解码器?
以下视频编解码器列表应该适用于大多数 Windows 系统:
msmpeg4v2
, .avi/.asfmsmpeg4
, 仅 .asfwmv1
, 仅 .asfwmv2
仅.asfmpeg4
, 仅当您安装了诸如 ffdshow 或 Xvid 之类的 MPEG-4 编解码器时。mpeg1video
, 仅 .mpg请注意,ASF 文件在 Windows 中通常具有 .wmv 或 .wma 扩展名。还应该提到的是,Microsoft 声称拥有 ASF 格式的专利,并且可能会起诉或威胁使用非 Microsoft 软件创建 ASF 文件的用户。强烈建议尽可能避免 ASF。
以下音频编解码器列表应该适用于大多数 Windows 系统:
adpcm_ima_wav
adpcm_ms
pcm_s16le
, 总是libmp3lame
, 如果安装了像 LAME 这样的 MP3 编解码器。
因此,当您转换时,您可以分别使用视频和音频的-vcodec
和-acodec
选项来指定要使用的编解码器。
例如:
ffmpeg -i input.mp4 -vcodec msmpeg4v2 -acodec pcm_s16le output.avi
Run Code Online (Sandbox Code Playgroud)
请注意,这是使用未压缩的音频,因为您无法确定 Windows 将支持哪种音频编解码器。如果幸运的话,您可以尝试 MP3(它应该适用于大多数新机器),并使用该libmp3lame
选项。
归档时间: |
|
查看次数: |
13530 次 |
最近记录: |