如何使用bash命令或Ruby使用ffmpeg将mp4文件批量转换为ogg

我正在运行OSX,不知道有关视频转换的信息.但我有200个视频都是mp4格式,不能在Firefox中播放.我需要将它们转换为ogg以使用html5视频标记.

这些文件存在于文件夹结构中,这使得一次只能执行一个文件很困难.我希望bash命令或Ruby命令遍历所有子文件夹并找到所有.mp4并转换它们.

我找到了一个如何使用Google进行此操作的参考:http://athmasagar.wordpress.com/2011/05/12/a-bash-script-to-convert-mp4-files-to-oggogv/

#!/bin/bash
for f in $(ls *mp4 | sed ‘s/\(.*\)\..*/\1/’)
do
ffmpeg -i $f.mp4 -acodec vorbis -vcodec libtheora $f.ogg
done

但不知道如何将其从linux转换为osx.

虽然你问题的直接答案是这样的:
#!/bin/bash
MOVIES=~/Movies/
find "$MOVIES" -name '*.mp4' -exec sh -c 'ffmpeg -i "$0" -sameq "${0%%.mp4}.ogg"' {} \;
exit;

我认为使用VP8 or webm codec可能会找到更好的结果,因为它会给你带来更好的效果,在现代版本的Firefox中实际上是preferred.鉴于此,你应该试试这个:

#!/bin/bash
MOVIES=~/Movies/
find "$MOVIES" -name '*.mp4' -exec sh -c 'ffmpeg -i "$0" -sameq "${0%%.mp4}.webm"' {} \;
exit;

这两种方法都会导致视频质量下降,因为它们会对已经编码的素材进行重新编码,在我看来,即使是webm编解码器也不如使用h.264的正确编码的MP4好.编解码器.

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...