我在一些 AVI 文件中遇到了这个问题。
ffmpeg -i file.avi
包含行
[NULL @ 0x97c4d40]检测到无效且低效的 vfw-avi 打包 B 帧。
有人建议我使用
ffmpeg -i file.avi -vcodec h263 -acodec aac -f mpg output.mpg
将文件转换为正确的格式,但会产生错误
未知的输入或输出格式:mpg
我怎样才能转换我的文件?
答案1
mpeg 而不是 mpg
ffmpeg -i file.avi -vcodec mpeg4 -f mpeg output.mp4
答案2
感谢 Andreas Cadhalpunffmpeg
现在有了新的过滤器:(mpeg4_unpack_bframes
见參考)。
使用方法非常简单:
ffmpeg -i INPUT.avi -codec copy -bsf:v mpeg4_unpack_bframes OUTPUT.mpg
答案3
我会用MPEG 流剪辑。这真的很简单。虽然他们已经有一段时间没有更新软件了,但我已经使用同一个版本很多年了(最近一次是在我装有 OS 10.6.6 的 Intel Mac 上)。它适用于单个文件。不确定批处理。祝你好运。
MPEG Streamclip 是一款功能强大的免费视频转换器、播放器和编辑器,适用于 Mac 和 Windows。它可以播放多种电影文件,不仅仅是 MPEG;它可以在多路复用/解复用格式之间转换 MPEG 文件以供创作;它可以将电影编码为多种格式,包括 iPod;它可以剪切、修剪和合并电影。MPEG Streamclip 还可以通过输入页面 URL 从 YouTube 和 Google 下载视频。
答案4
我跑步的时候也遇到过类似的情况
ffmpeg -v 5 -i input.avi -f null -
并出现以下错误:
[mpeg4 @ 02505f00] Invalid and inefficient vfw-avi packed B frames detected
[null @ 024eb020] Encoder did not produce proper pts, making some up.
解决方案:
ffmpeg.exe -i input.avi output.mp4
就如此容易。
(用于output.mpg
转换为 mpg。)