我在.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
?
谢谢。
答案 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