androidNDK开发之FFmpeg不显式指定ar问题解决方案

问题如下:

在音视频开发过程中使用ffmpeg命令把mp4格式转为flv格式:

ffmpeg -i test.mp4 out.flv

报错信息如下:

Sample rate must be 11025,22050 or 44100

Error initializing output stream 0:1 -- Error while opening encoder for output steam #0:1 -maybe incorrect parametes such as bit_rate,rate,width or heigh

报错的内容大致为:采样率必须为11025,22050或者44100。

既然是采样率报错,那么,我们可以用ffprobe来查看test.mp4的采样率:

我们发现test.mp4的音频流是用aac编码的,采样率为48000HZ,也就是说,当我们把test.mp4转为flv文件时,如果你没修改采样率,那么它就把原视频的采样率48000HZ作为转换后的flv的采样率,然而,我们查看flv的官方文档会发现,flv的aac编码的音频流仅支持5.5kHZ、11kHZ、22kHZ和44kHZ,详见下图:

 也就是说,在使用ffmpeg把mp4的格式转为flv的时候,在没有指定ar的情况下,flv封装格式中的aac不支持mp4的采样率,所以就报错了,因此,解决方法有两个:

方法一:转格式的时候 采用指定采样率,例如:

ffmpeg -i test.mp4 -ar 44100 out.flv

方法二:把自己编译的ffmpeg换成官方编译的ffmpeg进行转换,因为官方的ffmpeg会自动将aac的音频流转化为mp3格式。

flv官方文档:

https://rtmp.veriskope.com/pdf/video_file_format_spec_v10.pdficon-default.png?t=M4ADhttps://rtmp.veriskope.com/pdf/video_file_format_spec_v10.pdfffmpeg官方文档:

ffmpeg Documentationicon-default.png?t=M4ADhttps://ffmpeg.org/ffmpeg-all.html#toc-Audio-Options

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值