live555 关于使用ffmpeg扩展文件格式

博客介绍了如何利用live555支持mp4和avi格式,涵盖了mpeg4、h264、mp3、aac等媒体类型。重点提及了MPEG4GenericRTPSink在处理aac时的参数,并通过示例解释了mp3帧时长的计算方法。还提供了一张mpeg音频每帧采样数表,并分享了相关代码链接。
摘要由CSDN通过智能技术生成
    live555目前只mpg、mkv、webM等少数几种音视频混合的文件,可以使用ffmpeg来扩展live555所支持的文件格式。花了一个多月的时间,

终于可以支持mp4和avi了,媒体格式支持mpeg4、h264、mp3、aac。主要是参考了live555中mpg的实现。


1.扩展mediaServer的主要步骤    
1)定义一个RTSP Server类MyRTSPServer,继承自DynamicRTSPServer。作用是重新实现lookupServerMediaSession函数,在其中添加对avi、mp4的支持代码。
2)参考mpg的实现,定义以下几个类
MyDemux->Mdeium: 
调用ffmpeg中的函数,完成文件的解析,分离出文件中媒体流的数据。每一个客户端连接将对应一个MyDemux实例。
MyDemuxedElementaryStream->FramedSource:
这个类作为source,实际上会调用MyDemux实例获取所需的数据。每一个流将对应一个MyDemuxedElementaryStream实例。
MyServerDemux->Medium:
这个一个服务类,主要是辅助创建MyDemux、MyDemuxedElementaryStream及subsession实例。
3)subsession
对于每一种媒体格式,都需要实现一个subsession,并重新实现虚函数createNewStreamSource以创建自己的source。
    h264,处理h264的subsession从H264VideoFileServerMediaSubsession继承,将从packet中可以获取h264的es流,直接交给H264VideoStreamFramer处理即
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值