使用ffmpeg将.h264批量转换为.avi [重复]

Posted

技术标签:

【中文标题】使用ffmpeg将.h264批量转换为.avi [重复]【英文标题】:batch conversion from .h264 to .avi using ffmpeg [duplicate] 【发布时间】:2021-05-01 08:02:58 【问题描述】:

我正在完成一个项目,其中有大量 .h264 视频文件,所有这些文件都需要转换为高质量的 .avi 文件。它们必须是 .avi,因为之后我在它们上使用 DeepLabCut。 我已经能够使用代码逐个文件地执行此文件:

ffmpeg -i practicevid_5.h264 -q:v 6 practicevid_5_2.avi

但是,理想情况下,我希望能够转换这些文件的整个文件夹以节省时间。如果您能帮忙解决这个问题,请告诉我。

【问题讨论】:

见this answer如何使用ffmpeg转换整个目录? 【参考方案1】:

如果你使用的是 bash:

cd /the/dir/the/h264/videos/are/in
for input in *.h264; do ffmpeg -i $input -q:v 6 $input/.h264/_2.avi; done

在 Windows 默认 shell 中:

for %%input in (*.h264) do ffmpeg %%input -q:v 6 %input:.h264=_2.avi%

无法测试 windows 示例,因为我没有 windows 机器!

【讨论】:

谢谢!我会试试这个。我正在使用 Linux! @oliopti 很好,因为我已经多次使用 bash 版本了! 我导航到该文件夹​​,并使用您建议的代码 ffmpeg -i $input -q:v 6 $input/.h264/.avi ,就像这样输入。但是,我收到以下错误 -q:v: Protocol not found。你的意思是文件:-q:v? @oliopti 首先,我的帖子中有一个错字已修复,其次,当您在正确的文件夹中时,请复制粘贴我的代码的第二行,看看错误是否仍然存在。 @oliopti 错误的原因是您只输入了ffmpeg ... 部分而忽略了for 循环。这导致$input 变量为空,ffmpeg 将-q:v 作为输入文件。 -q 然后被解释为一个互联网协议,由于这样的协议不存在,它会给你这个错误。解决方案是复制粘贴我的代码的第二行。

以上是关于使用ffmpeg将.h264批量转换为.avi [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 ffmpeg 将视频转换为 MP4 (H.264/AAC)

ffmpeg 怎么把h264文件转成MP4

将视频转换为 H264 时出现无法识别的选项“c:v”ffmpeg 错误

FFmpeg 进行不必要的复用

ffmpeg 转换命令输出到 iPad 的 h.264

javascript Node.JS功能使用FFMPEG将IP摄像机的mp4 / h.264视频转换为HTML5视频标签