递归地将.mp4文件重新编码为.mp4的新副本,并使用ffmpeg将.mp4转换为.webm和.ogg

时间:2016-07-14 11:18:05

标签: ffmpeg mp4 ogg webm

我在.mp4个文件中有大约300个视频需要重新编码为新的.mp4文件,并将它们转换为.webm.ogg个文件。

我想使用ffmpeg在命令行执行此操作,并且我有以下命令将.mp4转换为.webm

find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -vcodec libvpx -acodec libvorbis -cpu-used 5 -threads 8 "${0%%.mp4}.webm"' {} \;

有人可以帮助我将此命令修改为两个单独的命令,一个用于.mp4 -> .mp4(文件名后缀为-2),另一个用于.mp4 -> .ogg

谢谢。

1 个答案:

答案 0 :(得分:0)

好吧,由于我没有得到任何回复,我确实找到了答案。

所以,为了其他人想要做同样的事情,这里有各种各样的命令:

funs()

请注意,我添加了标记webm find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -vcodec libvpx -acodec libvorbis -vf scale=-1:480 -cpu-used 5 -threads 8 "${0%%.mp4}.webm"' {} \; ogv find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -vcodec libtheora -acodec libvorbis -vf scale=-1:480 -cpu-used 5 -threads 8 "${0%%.mp4}.ogv"' {} \; flv find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -c:v libx264 -ar 22050 -crf 28 -vf scale=-1:480 -cpu-used 5 -threads 8 "${0%%.mp4}.flv"' {} \; mp4 find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -vcodec libx264 -vf scale=-1:480 -cpu-used 5 -threads 8 "${0%%.mp4}-2.mp4"' {} \; jpg find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -ss 00:00:10 -vframes 1 -r 1 -vf scale=-1:480 -f image2 "${0%%.mp4}.jpg"' {} \; ,可以按比例缩放视频。我已将高度设置为480px,并自动计算宽度。

另外,请注意我还包含了每个视频的屏幕截图导出。捕获是在视频的第10秒进行的,并保存为jpeg文件。

如果您希望保留原始文件的日期以便新版本(.webm,.ogv,.mp4,.flv)具有相同的修改日期,则可以使用-vf scale=-1:480命令作为如下:

touch