使用ffmpeg
我将FLV文件转换为MP4文件。但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.
答案 0 :(得分:2)
首先,你使用的是一个过时的,错误名称和破碎的ffmpeg
版本,实际上并非来自FFmpeg,而是来自Libav,一个FFmpeg分支。 Read this for more
错误是您的版本 - 由于某种原因 - 似乎没有配置任何其他库,因此您将很难实际转换为具有适当质量的任何有用的。
要让您的命令正常运行,-strict experimental
应该这样做,但我建议您使用download a recent static build FFmpeg,或compile it yourself具有依赖关系,例如libfdk_aac
和libx264
。
然后你可以这样做:
ffmpeg -i in.flv -crf 23 -c:v libx264 -c:a libfdk_aac -vbr 4 out.mp4
将CRF参数更改为18到28之间以控制质量。更少意味着更好,23是默认。对于音频,质量通过VBR选项设置,4个提供大约128 kBit / s的立体声,值为1到5(更高意味着更好)。
如果你真的必须使用恒定比特率,那么试试这个:
ffmpeg -i in.flv -c:v libx264 -b:v 1104K -c:a libfdk_aac -b:a 122k out.mp4
有关更多选项,请参阅FFmpeg wiki上的x264 encoding guide和AAC encoding guide。