如果我没有犯错,Safari目前需要为HTML5 <video>
元素编码的MP4(H.264 / AAC)video。
所以我试图用ffmpeg
将video转换成这种格式。 但是当我inputshell命令ffmpeg -i video.flv video.mp4
,返回的错误是:
似乎stream0编解码器帧速率与容器帧速率不同:2000.00(2000/1) – > 29.92(359/12)从“video.flv”input#0,flv:
持续时间:00:05:01.20,开始:0.000000,比特率:66 kb / sstream#0.0:video:h264,yuv420p,320×240 [PAR 1:1 DAR 4:3],66 kb / s,29.92 tbr, ,2k tbcstream#0.1:audio:aac,22050 Hz,立体声,s16输出#0,mp4,到'video.mp4':stream#0.0:video:mpeg4,yuv420p,320×240 [PAR 1:1 DAR 4:3 ],q = 2-31,200kb / s,90k tbn,29.92 tbcstream#0.1:audio:0x0000,22050Hz,立体声,s16,64kb / sstream映射:stream#0.0->#0.0
stream#0.1 – >#0.1输出stream#0.1不支持的编解码器
一个AAC编解码器是必需的,但我很新手与Ubuntu和我现在不真的如何解决这个问题。 我使用Ubuntu 9.10 Karmik Koala(用于amd64)。
非常感谢你。 🙂
http://handbrake.fr是一款不错的高级工具,它为iPod,PS3,…提供了许多有用的预设功能,包括适用于Linux,Windows和Mac OS X的GUI和CLI界面。
它具有自己的依赖关系作为一个静态链接的胖二进制文件,所以你有所有的x264 / aac编解码器。
$ HandBrakeCLI -Z Universal -i myinputfile.mov -o myoutputfile.mp4
要列出所有可用的预设:
$ HandBrakeCLI -z
软件专利导致Debian / Ubuntu禁用ffmpeg中的H.264和AAC编码器。 请参阅/usr/share/doc/ffmpeg/README.Debian.gz。
因此,请安装x264,mplayer / mencoder和Nero的AAC编码器。 (或者,如果你想使用所有的免费软件,并不关心音频质量,那么sudo aptitude install faac。)
我不记得mencoder的medibuntu包是否包含x264 vid编码,因为我从git x264和svn mplayer资源创建了我自己的。 (X264是非常积极的开发,经常增加质量和速度的显着提高。) http://git.videolan.org/?p=x264.git;a=summary
x264也是打包的,但你应该检查它是最新的,包括最近的错误修正 ,甚至更近的速度改善…
或者,如果您已经愿意从.flv转换,而不是从高质量的源代码中创建flv,那么无论最新版本的x264是什么,都可以。
格式化您的控制台的输出作为FFmpeg带出这些细节。
Input #0, flv, from 'video.flv': Duration: 00:05:01.20, start: 0.000000, bitrate: 66 kb/s Stream #0.0: Video: h264, yuv420p, 320x240 [PAR 1:1 DAR 4:3], 66 kb/s, 29.92 tbr, 1k tbn, 2k tbc Stream #0.1: Audio: aac, 22050 Hz, stereo, s16
原始的flv被转换为H.264视频和AAC音频的.mp4文件(就像原来的.flv一样):
Output #0, mp4, to 'video.mp4': Stream #0.0: Video: mpeg4, yuv420p, 320x240 [PAR 1:1 DAR 4:3], q=2-31, 200 kb/s, 90k tbn, 29.92 tbc Stream #0.1: Audio: 0x0000, 22050 Hz, stereo, s16, 64 kb/s
由于.flv中的音频和视频数据已经在.mp4格式/编解码器中,因此您可以将所有内容复制到新的.mp4容器中。 这个过程将比解码和重新编码一切都快得多:
ffmpeg -i video.flv -vcodec copy -acodec copy video.mp4
或者更简单:
ffmpeg -i video.flv -codec copy video.mp4
对输出流#0.1不支持的编解码器
这意味着FFmpeg无法将音频(流#0.1)转换为AAC。
你可以跳过错误:
或者您可以通过以下方式解决错误:
更多的细节,你也应该阅读转换FLV到MP4 FFmpeg终极指南
您需要重新编译ffmpeg(从源代码),以便它支持x264 。 如果您按照本页中的说明进行操作,那么您将可以进行任何类型的转换。
您也可以尝试将Motumedia PPA添加到您的apt源并更新您的ffmpeg软件包。
您需要使用AAC编码器编译ffmpeg。 你可以在AudioCoding找到一个。
这个问题最近与转换讨厌的WMV到Final Cut Pro X进行编辑。 流动玩家可以做到这一点,但它留下了一个水印,所以我用ffmpeg拨弄了一下,直到我得到了一些东西。
首先安装ffmpeg – 我用brew install ffmpeg
显然你需要先安装brew,谷歌那一点。
接下来,我写了一个简单的命令行脚本,其中包含以下内容 – 您可以将$ 1替换为输入/输出文件,或者只是创建一个shell脚本文件… vi convert.sh粘贴。
echo "Pass one" ffmpeg -y -i "$1" -c:v libx264 -preset medium -b:v 1555k -pass 1 -c:a libfaac -b:a 256k -f mp4 /dev/null && echo "Pass two" ffmpeg -i "$1" -c:v libx264 -preset medium -b:v 1555k -pass 2 -c:a libfaac -b:a 256k "$1.mp4"
然后转换你的视频… sh convert.sh myvideofile.wmv如果一切顺利,你应该看到一个名为myvideofile.wmv.mp4的新文件。
希望这对你有用。