srs实现跨域播放

转自https://blog.csdn.net/ang_shifeng/article/details/82885983
SRS实现跨域播放
需要ffmpeg这个组键–with-ffmpeg

首先 ,第一步 更改配置文件
#cd srs/trunk
#vi src/app/srs_app_http_stream.cpp
在w->header()->set_content_type(“video/x-flv”);下一行添加代码
w->header()->set(“Access-Control-Allow-Origin”,"*");
w->header()->set(“Access-Control-Allow-Methods”,“GET,OPTIONS”);
w->header()->set(“Access-Control-Allow-Headers”,“range”);

完成后编译安装
#./configure --with-ffmpeg
#make

启动
#./objs/srs -c conf/srs.conf
推流
#for(( ;; )); do ./objs/ffmpeg/bin/ffmpeg -re -i ./doc/source.200kbps.768x320.flv -vcodec copy -acodec copy -f flv -y rtmp://192.168.0.224:1935/live/livestream; sleep 1; done

或者使用下面这种方式(推荐)
#cd srs/trunk
#vi src/app/srs_app_http_stream.cpp
在w->header()->set_content_type(“video/x-flv”);下一行添加代码
w->header()->set(“Access-Control-Allow-Origin”,"*");
然后直接编译安装SRS
#./configure
#make

然后在ffmpeg官网上下载ffmepg.tar.gz
解压
#tar xf ffmpeg.tar,gz
进入ffmpeg目录
#cd ffmpeg
编译安装,指定目录到SRS的objs目录中
#./configure --prefix=/root/srs-2.0-r2/trunk/objs/ffmpeg --bindir=/root/srs-2.0-r2/trunk/objs/ffmpeg/bin --disable-x86asm
#make
#make install

srs实现跨域播放_第1张图片
参考文章:https://github.com/bilibili/flv.js/blob/master/docs/cors.md

注意:在修改src/app/srs_app_http_stream.cpp之前不要编译srs

作者:ANG_shifeng
来源:CSDN
原文:https://blog.csdn.net/ang_shifeng/article/details/82885983
版权声明:本文为博主原创文章,转载请附上博文链接!

以上完成之后,谷歌播放5秒钟左右会断流,报如下错误:
srs实现跨域播放_第2张图片
srs实现跨域播放_第3张图片
srs实现跨域播放_第4张图片
ffplay报如下错误:
srs实现跨域播放_第5张图片

去掉sps和pps帧,万事ok。(SPS和PPS还是要加的,之前是因为发送SPS和PPS的函数和发送视频帧的函数不一样的)

你可能感兴趣的:(srs)