[源码]av_read_frame()+自定义IO读取函数-->>内存and实时视频流的RTMP推流

通过FFmpeg的av_read_frame()结合自定义IO读取函数,实现从Hi3516A编码的H264裸流数据推送到RTMP流媒体服务器。利用共享内存进行两个进程间的数据通信,确保实时性。通过分析FFmpeg源码,理解av_read_frame()的工作原理,以及自定义回调函数如何读取和解析H264码流,包括NALU类型识别和时间戳设置。
摘要由CSDN通过智能技术生成

本文,记录Hi3516A芯片,搭载FFmpeg,利用共享内存,并实现FFmpeg的内容读取码流数据,实时RTMP推流至服务器。

项目需求:
  1. 编码H264裸流,Hi3516A实现编码;打包为FLV,FFmpeg利用RTMP推流。
  2. 分为两个进程,数据通信利用IPC--共享内存实现
  3. 要求:实时推流

学习主要参考资料:
  1. FFmpeg源码的example/avio_reading.c,正是FFmpeg自身提供用户学习的自定义IO例子(这个例子非常简单,直接学习)
  2. 雷霄骅师兄的《最简单的基于FFmpeg的内存读写的例子:内存转码器》,链接(其实并不简单,因为涉及内容很多的)
  3. FFmpeg源码--个人图解分析--av_read_frame()

读写内存的关键函数备注:
  1. 初始化自定义的AVIOContext,指定自定义的回调函数。
  2. 自己写回调函数。注意函数的参数和返回值(尤其是返回值)。

初始化自定义IO流程:
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值