利用FFMPEG 将RTSP流的音频G711 转码为AAC 并 推流到RTMP

之前我们的视频转码项目中 是没有加入音频的 

现在 需要加入音频 ,由于RTMP只支持AAC的 音频流   而有的RTSP流的音频编码并不是AAC 

大多数都是G711编码  还分为G711A 和G711U  

之前用ffmpeg命令行可以直接 完成转码 并推送到RTMP

但是考虑到无法获取更详细的状态 

这次 利用代码实现  

很早之前 在海思平台上通过libfaac实现过 此功能 那会是将录制的视频音频保存到mp4文件 

默认的MP4文件也是不支持 G711编码的  

由于ffmpeg本身已经支持711 到aac的转换 (底层可能还是用的libfaac  没仔细研究过)

所以本次就通过 只依赖于FFMpeg 实现 没有任何一台与其他第三方库(网上有通过EasyAACEncoder实现的)  

可以 保存为文件 也可以 推流到RTMP

目前  只加了 音频  

视频后面慢慢加  

大多数时间都花在调试上 

目前有很多异常未处理 

但是功能已经没问题了 

完整代码 付费 提供 

支持文件到文件 

rtsp到文件 

文件到rtmp

rtsp到rtmp

RTSP流的编码信息 :

RTMP 推送的音频信息(视频还没加)

可以看到 输入RTSP的音频编码是G711A

RTMP的音频编码是AAC

ffplay播放效果如下

20240302 更新 今天加入了视频  早上11点来公司 调试调到18点才搞好。

目前的视频是未转码的 下一步需要做视频转码  

特别坑 一直以为是时间戳的问题   最后调试发现  是 packet的streamindex问题 把音频的packet 写到视频的packet里面了 

效果如下  图 左边是 rtsp流  右边是推送的rtmp流

经测试  rtmp推送到 ZLMediaKit的话 ffplay能正常播放  vlc播放不了 

推送到srs流媒体服务器的话  ffplay vlc 都能正常播放  

20240303 更新 增加了视频转码的功能 利用libx264 进行CPU转码 效果如下:

流媒体服务器 SRS 还是 ZLMediaKit 都可以正常播放

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QMCY_jason

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值