2012-10-17 152 views
5

我想从.flv转换为.h264格式。如何使用FFmpeg将.flv视频转换为.h264格式?

问题:我做了从FLV到H264格式的转换,但我转换的视频(.h264)运行速度如此之快(就像我们点击快进按钮一样)。

我用下面的命令:

ffmpeg -i example.flv -sameq -vcodec libx264 -vpre default -ar 22050 output.h264 
+1

请更新您的问题以包含完整的控制台输出。不要使用'-sameq':[sameq并不意味着“相同的质量”](http://superuser.com/a/478550/110524)。 FFmpeg使用问题更适合superuser.com。 – LordNeckbeard

回答

13

的解决方案是,你需要一种容器格式。 Raw h.264没有任何视频的时间信息,这就是为什么你的播放器播放速度非常快。

另外你的命令都搞砸了。你想在你的输出中使用音频吗?如果是,那么你需要指定一个包含音频和视频的容器格式。

无论你的输出更改为MP4

ffmpeg -i input_file -c:a copy -c:v libx264 -profile:v baseline out.mp4 

或一些其它容器。如果您只想要一个视频流,请删除音频选项并添加。

如果你想使用的AAC音频,而不是任何的FLV文件有:

ffmpeg -i input_file -c:a aac -strict -2 -b:a 128k -c:v libx264 -profile:v baseline out.mp4 

如果您的ffmpeg没有-c-profile选项,更新到较新版本。

+0

'-vpre'在任何最新的FFmpeg版本中都不存在,应该避免。使用'-profile:v'指定配置文件,'-preset slow'等编码预设。 – slhck

+0

@slhck,谢谢你的指针。 – av501

+0

@ av501下面的命令工作正常,生产H.264格式的MP4视频,但音频不工作在IPhone(它在Android手机上工作)ffmpeg -i example.flv -r 25 -sameq -ab 128kb -vcodec libx264 - vpre default -s 320x240 -b 768kb -ar 44100 -acodec copy output.mp4当我使用acodec = aac时,ffmpeg显示以下消息“encoder'aac'是实验性的,可能会产生不好的结果 添加'-strict experimental'如果你想使用它。“ –

-2

你正在寻找神奇的关键词是“帧每秒”。

例如,在输出视频中为30 fps添加“-r 30”。

塞巴斯蒂安

+0

滤波器后出现错误点MISSING 没有来自分路器的pts值用于帧!,?%0 0 pts滤波器后MISSING 没有来自分路器的pts值用于帧!,?%0 0 pts after filters MISSING 没有从分路器得到的pts值用于frame!,?%0 0 –

+0

我在我的命令中使用了-r 30 :: ffmpeg -i example.flv -r 30 -sameq -vcodec libx264 -vpre default -ar 22050输出。 h264但结果不会改变,视频仍在快速运行 –

+0

你试过用-r 10吗? –

相关问题