当使用 ffmpeg 从 .mp4 转换为 .avi 时,如何使 .avi 文件包含 .mp4 中的正确(修剪后的)帧?

问题描述 投票:0回答:1

我正在使用 ffmpeg 从命令行将一批 .mp4 视频转换为 .avi 格式。 .mp4 视频都是经过修剪的视频,是较长视频的子视频。我基本上将较长的视频分割成小的、不重叠的块(或者可能有几毫秒的重叠),并且我想将所有这些较小的块(.mp4)转换为.avi。但是,我遇到了一个问题:.avi 文件在每个视频的开头都包含一些附加帧,我在 .mp4 视频中明确修剪了这些帧。我不确定到底是什么导致了这个问题或如何解决它。我怀疑转换视频时帧速率存在一些不一致,但我可能是错的。

我尝试使用以下命令:

for file in *.mp4; do ffmpeg  -i "$file" -acodec copy -vcodec copy "${file%.mp4}.avi"; done

for file in *.mp4; do ffmpeg  -i "$file" -acodec copy -vcodec copy -fps_mode 2 "${file%.mp4}.avi"; done

for file in *.mp4; do ffmpeg  -i "$file" -c:v copy -c:a copy -fps_mode 2 "${file%.mp4}.avi"; done

for file in *.mp4; do ffmpeg  -i "$file" -c:v copy -c:a copy -fps_mode 1 "${file%.mp4}.avi"; done

for file in *.mp4; do ffmpeg -i "$file" -c:v copy -c:a copy "${file%.mp4}.avi"; done     

一切都无济于事。如何解决此问题,以便在生成的 .avi 中仅处理修剪后的 .mp4 视频中的帧?

video ffmpeg mp4 file-conversion avi
1个回答
0
投票

我可能已经找到了解决方案。我刚刚修改了输出的帧速率以匹配输入的帧速率。在这种情况下,帧速率以 25 fps 编码。像这样的东西:

for file in *.mp4; do ffmpeg -i "$file" -r 25 "${file%.mp4}.avi"; done

© www.soinside.com 2019 - 2024. All rights reserved.