我有一个 25fps 的 .avi 视频 (divx),它有 64kbit/s 的 mp3 音频。该视频在整个视频中只有一张图片。
我正在尝试将此视频转换为 mp4,但要使其尽可能小(因为实际上只有 1 帧!)
我目前正在尝试这个:
ffmpeg -i video.avi -vcodec libx264 -acodec aac \
-ar 32000 -ab 64k -ac 2 -strict -2 -y video.mp4
Run Code Online (Sandbox Code Playgroud)
但这会生成与 .avi 大小相似的 mp4 视频。
接下来我尝试将帧速率更改为 1fps:
ffmpeg -i video.avi -vcodec libx264 -acodec aac \
-ar 32000 -ab 64k -ac 2 -strict -2 -y -r 1 video.mp4
Run Code Online (Sandbox Code Playgroud)
这使得视频文件小得多(小 10 倍),但存在关键帧没有出现在视频的第一帧的问题。所以视频中唯一的一帧在视频中看起来像 8 或 10 秒(!)。
看起来这里的问题是 ffmpeg 不断从 video.avi 中删除帧,并且不会将它们作为关键帧写入 video.mp4。当它确实写了一个关键帧时,它在视频中已经晚了。
它尝试使用-force_key_frames参数,但这也无济于事。我做了-force_key_frames 0和-force_key_frames …