用于小文件大小的libav / ffmpeg输出优化

时间:2016-04-21 02:43:09

标签: audio ffmpeg libavcodec libav avconv

我正在使用以下命令获取音频mp3文件并从中制作视频(使用静态jpg图片)。我的目标是获得尽可能小的mp3音频,质量仍然可以接受。

frequency="11000"
bitrate="45000"
avconv -loop 1 -i a.jpg -i audio.mp3 -shortest -r 1 -metadata STEREO_MODE=mono -c:v libx264 -ar "$frequency" -b:a "$bitrate" -ac 0 result.mkv

我的问题是: 1.如何实现生成的文件是MONO? 2.是否可以进一步降低比特率?我也想使用低于45000的值。 3.我的目标是最明显地控制影响文件大小的参数。目前我知道频率非常重要。还有其他参数可以帮助我获得质量仍然可以接受的非常小的输出文件吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

由于您要编码为压缩音频编解码器,因此频率不会直接影响文件大小。但是,11 kHz的频率会降低音乐质量。

相反,我建议

 private func addSubviews(){
        navigationController?.setToolbarHidden(false, animated: false)
//        webView = UIWebView(frame: CGRect(x: 0, y: 0, width: UIScreen.mainScreen().bounds.width, height: UIScreen.mainScreen().bounds.height))

        webView = UIWebView(frame: CGRectZero)
        webView.translatesAutoresizingMaskIntoConstraints = false
        self.view.addSubview(webView)
        let views = ["myView" : webView]
        let formatString = "|-[myView]-|"
        let constraints = NSLayoutConstraint.constraintsWithVisualFormat(formatString, options:[] , metrics: nil, views: views)

        NSLayoutConstraint.activateConstraints(constraints)
} 

CRF参数控制视频质量 - 较低的值会产生质量更好但文件更大的文件。你可以通过控制比音频比特率获得更多的节省,而音频比特率无论如何都在低端。

如果您的版本包含frequency="22050" bitrate="48000" ffmpeg -loop 1 -i a.jpg -i audio.mp3 -shortest -r 1 -c:v libx264 -crf 28 \ -ar "$frequency" -b:a "$bitrate" -ac 1 result.mkv ,则可以使用

libfdk_aac