如果我没有犯错误,Safari目前需要为HTML5 <video>
元素编码的MP4(H.264 / AAC)视频。
所以我尝试使用ffmpeg
将视频转换为此格式。但是当我输入shell命令ffmpeg -i video.flv video.mp4
时,返回的错误是:
似乎流0编解码器帧速率 与容器帧率不同: 2000.00(2000/1) - &gt; 29.92(359/12)输入#0,flv,来自'video.flv':
持续时间:00:05:01.20,开始: 0.000000,比特率:66 kb / s 流#0.0:视频:h264,yuv420p,320x240 [PAR 1:1 DAR 4:3],66 kb / s, 29.92 tbr,1k tbn,2k tbc 流#0.1:音频:aac,22050 Hz,立体声,s16输出#0,mp4,to 'video.mp4': 流#0.0:视频:mpeg4,yuv420p,320x240 [PAR 1:1 DAR 4:3], q = 2-31,200 kb / s,90k tbn,29.92 tbc 流#0.1:音频:0x0000,22050 Hz,立体声,s16,64 kb / s流 映射:流#0.0 - &gt; #0.0
流#0.1 - &gt; #0.1不支持的编解码器 输出流#0.1
需要一个AAC编解码器,但我对ubuntu很新手,我现在真的不知道如何解决这个问题。我正在使用Ubuntu 9.10 Karmik Koala(amd64)。
非常感谢你。 :)
答案 0 :(得分:16)
http://handbrake.fr是一个很好的高级工具,为iPod,PS3,...提供了许多有用的预设,包括适用于Linux,Windows和Mac OS X的GUI和CLI界面。
它自带的依赖项作为单个静态链接的fat二进制文件,因此您包含了所有x264 / aac编解码器。
$ HandBrakeCLI -Z Universal -i myinputfile.mov -o myoutputfile.mp4
列出所有可用的预设:
$ HandBrakeCLI -z
答案 1 :(得分:14)
软件专利促使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也已打包,但您应检查它是否为最新版本,以便weightp包含recent bugfixes,以及更近期的速度提升......
或者,如果您已经愿意转换.flv,而不是从高质量的源代码转换而来,那么很可能无论最新版本的x264都可以使用。
答案 2 :(得分:4)
将控制台的输出格式化为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。
您可以跳过错误:
或者你可以解决错误:
有关详情,请阅读Converting FLV to MP4 With FFmpeg The Ultimate Guide
答案 3 :(得分:3)
您需要recompile ffmpeg (from source) so that it supports x264。如果您按照本页中的说明操作,那么您将能够执行任何类型的转换。
答案 4 :(得分:1)
您也可以尝试将Motumedia PPA添加到apt资源并更新您的ffmpeg软件包。
答案 5 :(得分:1)
最近出现了这个问题,将令人讨厌的WMV转换为Final Cut Pro X进行编辑。 Flow玩家可以做到,但它留下了水印,所以我用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的新文件。
希望对你有用。
答案 6 :(得分:0)
您需要使用AAC编码器编译ffmpeg。您可以在AudioCoding找到一个。
答案 7 :(得分:0)
尝试以下操作:: Linux中的 Libav
Installation: run command
sudo apt-get install libav-tools
Video conversion command::Go to folder contains the video and run in terminal
avconv -i oldvideo.flv -ar 22050 convertedvideo.mp4