2013-03-28 85 views
0

使用ffmpeg我转换FLV文件到一个MP4文件中。但MP4文件有0个字节。这是我用来转换的命令是使用FFMPEG MP4文件FLV转换为MP4格式之后具有0字节

ffmpeg -i sample.flv -b 1104k -ab 122k sample.mp4 

这是我得到了上面的ffmpeg的命令的输出:

ffmpeg version 0.8.5-4:0.8.5-0ubuntu0.12.04.1, Copyright (c) 2000-2012 the Libav developers 
    built on Jan 24 2013 18:01:36 with gcc 4.6.3 
*** THIS PROGRAM IS DEPRECATED *** 
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead. 
[flv @ 0x64f7a0] Estimating duration from bitrate, this may be inaccurate 
Input #0, flv, from '/home/kirthiga/Desktop/videopine/test.flv': 
    Metadata: 
    creationdate : Thu Mar 28 12:46:29 
    Duration: 00:00:09.82, start: 0.000000, bitrate: N/A 
    Stream #0.0: Video: flv, yuv420p, 320x240, 1k tbr, 1k tbn, 1k tbc 
    Stream #0.1: Audio: nellymoser, 22050 Hz, mono, s16 
[buffer @ 0x64f720] w:320 h:240 pixfmt:yuv420p 
encoder 'aac' is experimental and might produce bad results. 
Add '-strict experimental' if you want to use it. 

回答

2

首先,您使用的是过时的,名不副实和破碎的版本ffmpeg这实际上不是从FFmpeg的,而是从Libav,一个FFmpeg的派生。 Read this for more

的错误是,你的版本,出于某种原因,doesn't似乎与任何其他库进行配置,这样的话你就会有一个困难时期实际上适当的质量转换为有用的东西。

为了让您的命令工作,一个-strict experimental应该做的,但我的建议,而不是是,你要么的FFmpeg的download a recent static build,或compile it yourself具有相关性,如libfdk_aaclibx264

你可以再做:

ffmpeg -i in.flv -crf 23 -c:v libx264 -c:a libfdk_aac -vbr 4 out.mp4 

变化18和28之间的CRF参数来控制质量。不足意味着更好,23是默认值。对于音频,质量设置与VBR选项,用4从1到5(较高的装置更好)提供大致128 kbit/s的立体声,和值。

如果你真的必须使用恒定比特率,试试这个来代替:

ffmpeg -i in.flv -c:v libx264 -b:v 1104K -c:a libfdk_aac -b:a 122k out.mp4 

x264 encoding guideAAC encoding guide上FFmpeg的维基更多的选择。