如何通过命令行或批处理脚本与ffmpeg转换整个目录/文件夹?
当前回答
对于Linux和macOS,这可以在一行中完成,使用参数展开来更改输出文件的扩展名:
for i in *.avi; do ffmpeg -i "$i" "${i%.*}.mp4"; done
其他回答
使用多核,这是最快的方法,(使用并行):
parallel "ffmpeg -i {1} {1.}.mp4" ::: *.avi
要转换子目录,请使用例如。
find . -exec ffmpeg -i {} {}.mp3 \;
我知道这可能是多余的,但我使用这个脚本批量转换文件。
old_extension=$1
new_extension=$2
for i in *."$old_extension";
do ffmpeg -i "$i" "${i%.*}.$new_extension";
done
它需要2个参数使其更灵活:
要转换的扩展名 要转换的新扩展名
我为它创建了一个别名,但你也可以手动使用它,像这样:
sh batch_convert.sh mkv mp4
这将把所有的mkv文件转换为mp4文件。
正如你所看到的,它更多功能。只要ffmpeg可以转换它,您就可以指定任何两个扩展。
@Linux 为了转换一堆,我的一行代码是这样的 (。Avi到。mkv)在同一目录:
for f in *.avi; do ffmpeg -i "${f}" "${f%%.*}.mkv"; done
请注意输出语句中的两个“%%”。它不仅提供了第一个单词或输入文件名,还提供了最后一个点之前的所有内容。
如果您想要一个图形界面来使用ffmpegX进行批处理,请尝试Quick Batcher。它是免费的,并将使用您最后的ffmpegX设置来转换您放入其中的文件。
注意,不能将文件夹拖放到Quick Batcher上。所以选择文件,然后把他们通过快速批处理。
推荐文章
- 最快的方法提取帧使用ffmpeg?
- 哪个HTTP状态代码表示“尚未准备好,稍后再试”?
- Android上的FFmpeg
- 实时http流到HTML5视频客户端的最佳方法
- 如何添加一个新的音频(不混合)到一个视频使用ffmpeg?
- ffmpeg、libav和avconv之间有什么不同和相似之处?
- Ffmpeg覆盖输出文件,如果存在
- 如何安装和运行phpize
- 使用ffmpeg将音频文件转换为mp3
- FFMPEG (libx264)高度不能被2整除
- 操作系统检测生成文件
- 如何创建一个视频从图像与FFmpeg?
- 如何用ffmpeg转换整个目录?
- 使用FFmpeg旋转视频
- 如何从视频中提取音频与ffmpeg?