ffmpeg 推流rtsp流为h264/aac

最近有一个需求,获取摄像头的数据,写mp4,视频比较好处理(解码->编码->写文件)。

对于音频,稍微有点麻烦。

摄像头支持的音频格式有多种,比如pcmu/pcma/aac.

对于aac格式,直接写文件。

对于pcma/pcmu,需要做一些处理。

我的想法是,pcma解码后直接编码成aac,保持和原始数据相同的采样率通道数等,不重采样。

用source Insight看了下ffmpeg的源码,看是否有这样的例子,还真让我找到了,移植到代码上,测试通过。

网上有很多例子,都是读一个pcm文件,解码再编码写文件。这个好处理,你读文件,你要多少你就可以读多少,

而一些厂商摄像头,读出的数据长度是320字节。

请查看ffmpeg的transcoding.c的源码吧。其实就是利用libavfilter。

查看摄像头的音频配置,音频格式是pcm,采样率有8k,16k,32k,44.1k,48k等。在8k,16k,32k时,使用ffmpeg提供的例子测试正常。

当采样率设置44.1k/48k,报了一些错误。

我的想法是,限制输出采样率为最大32k,这时libavfilter就有一个重采样的过程,目前正在验证。

推RTSP流:参考live555,都有现成的例子,抄抄就可以了。推流h264/aac没啥问题,使用vlc播放视频和音频有点不同步,需要优化下。

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值