我尝试这样做,但 Windows 说该文件不可播放。在 VLC 中播放它可以。
ffmpeg -i in.mp4 -f mpeg -vcodec mpeg2video out.m2v
答案1
Windows Media Player 使用 DirectShow,这是一个根据输入内容连接在一起的过滤器系统。如果您想使用 Windows Media Player 播放任何格式,最好安装一组免费的开源 DirectShow 过滤器,统称为“LAV 过滤器”,由 Nevcairiel 编写和维护。其最新安装程序版本可在其 Github 发布页面上找到,网址为:https://github.com/Nevcairiel/LAVFilters/releases
但是,如果您的目标是默认的 Windows 安装,Windows 默认 DirectShow 过滤器支持的最高质量的有损编解码器之一是 Windows Media Video。以下是如何使用 Windows Media Video 8 使用 ffmpeg 方便地转码 Windows Media Video 文件。
ffmpeg -i input.mp4 -q:a 2 -q:v 2 -vcodec wmv2 -acodec wmav2 output.wmv
Windows Media Video 有一个更新版本,称为 Windows Media Video 9,但 FFmpeg 不支持对 Windows Media Video 9 进行编码;仅支持解码。对于编码,使用 Microsoft 工具更有可能成功。
最后我想补充一点。理想情况下,除非你的源视频是无损的,否则你不应该将视频转码为有损格式,比如 Windows Media Video 8。这就引入了代际流失,这对于存档视频来说是一个严重的问题。相反,请尝试确保您的目标播放系统可以播放原始有损编解码器编码的视频,或确保您从无损源对有损视频进行编码。