rtp组帧frame数据
你好,大佬,我这边有个rtp包组包成帧数据送入解码进行解码,目前使用的rtp_payload_decode_create 输入rtp数据,每次回调函数被调用的时候不是完整的frame的数据,这个我该怎么处理呢?
可以参考librtsp/source/utils/rtsp-demuxer.c,这里实现了常见264、265、aac音视频帧组帧功能。
感谢,我还想咨询下rtp_payload_decode_create这个作用是用来组包的吗?
rtp_payload_decode_create 可以用来组包,但组的包不一定是完整视频帧。
比如264的视频帧可能会由多个nal组成,每个nal可以拆分成多个rtp包。rtp_payload_decode_create 函数只能将多个rtp包组成一个nal,但是不能将多个nal组成一个完整的264视频帧。
组帧需要用到rtsp-demuxer.
好的,明白了,非常感谢. 我理解下来应该是这样。 1 创建rtp_demuxer_create(100, 90000, payload, encoding, rtp_demuxer_test_onpacket, &ctx) 2 送入rtp数据 rtp_demuxer_input 3 回调接收数据 rtp_demuxer_test_onpacket 这里面进来应该是frame数据了
rtp-demuxer只是处理了rtp包乱序,rtsp-demuxer才有组帧功能。
用rtsp-demuxer, librtsp目录下的,不是rtp-demuxer。