首先要感谢winlin写出这么精简的东西
先说说,我是怎么用它的:
1.按照wiki上说的(https://github.com/simple-rtmp-server/srs/wiki/v2_CN_SrsLibrtmp)
1)srs-librtmp导出为独立可以make的项目,生成.a静态库和.h头文件,以及生成了srs-librtmp的所有实例
[root@demo srs]#
dir=/home/winlin/srs-librtmp && rm -rf $dir && ./configure --export-librtmp-project=$dir && cd $dir && make &&./objs/research/librtmp/srs_play rtmp://ossrs.net/live/livestream
2)可以直接导出为一个文件srs_librtmp.cpp
[root@demo srs]#dir=/home/winlin/srs-librtmp && rm -rf $dir && ./configure --export-librtmp-single=$dir &&
cd $dir && gcc example.c srs_librtmp.cpp -g -O0 -lstdc++ -o example && strip example && ./example
2.我肯定选用第二种方式,比较简便
3. 视频帧: https://github.com/simple-rtmp-server/srs/wiki/v2_CN_SrsLibrtmp#publish-h264-raw-data
H264的裸码流(帧)转换RTMP时:
1)dts和pts是不在h264流中的,外部给出。
2)SPS和PPS在RTMP一个包里面发出去。
3)RTMP包=5字节RTMP包头+H264头+H264数据,具体参考:SrsAvcAacCodec::video_avc_demux
4)直接提供接口,发送h264数据,其中包含annexb的头:N[00] 00 00 01, where N>=0.
音频帧:
参考:https://github.com/simple-rtmp-server/srs/issues/212#issuecomment-63755405
使用实例:https://github.com/simple-rtmp-server/srs/issues/212#issuecomment-64164018
音频帧: