实时视频rtmp
背景:
由于经常接触实时视频, 对实时视频略有了解. 实时视频是将视频流实时上传到服务器端进行解析, 由RTMP服务器处理.
安装RTMP 服务器
自己动手搭建一个rtmp, 本文在 Linux环境中搭建
去git上clone 一个下来https://github.com/arut/nginx-rtmp-module
解压后安装即可, 如何安装本文不做过多篇幅介绍.
修改配置文件
修改../nginx-rtmp-module/test下配置文件nginx.conf, GitHub上就是这个结构, 我们这里不做改动.
作用是指定端口号和文件目录
作用是使浏览器可以访问,便于我们调试视频
以上配置基本可以访问了, 如有其它需求可以参见详细配置:
https://github.com/sergey-dryabzhinsky/nginx-rtmp-module/blob/dev/test/nginx.conf
配置完成后检查是否正确:
[nginx-rtmp-module]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
出现以上信息说明我们配置成功了.
配置文件修改完成后推荐重启server
nginx:nginx -s reload
检查RTMP是否生效
浏览器中输入:http://+服务器ip+端口+stat
浏览器中出现下图,则表示rtmp服务生效了
推流
推流需要借助ffmpeg
linux下ffmpeg下有2个压缩包
https://ffmpeg.org/releases/ffmpeg-4.0.2.tar.bz2
http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
推流服务器地址格式如下:
rtmp://+ip+":"端口+/live/+"其他" //其他是任意起的名字
例如:rtmp://10.10.10.10:8001/live/test
输入下面命令向服务器推流:
ffmpeg -re -i +视频路径 -c copy -f flv +推流服务器地址
其他还有视频剪切, 码率控制, 视频编码格式转换等 ffmpeg都能应付自如.
比如一个视频的编码是MPEG4,想用H264编码,咋办?
ffmpeg -i input.mp4 -vcodec h264 output.mp4
VLC验证推流
使用播放工具VLC 播放工具
rtmp://10.10.10.10:8001/live/selftest
将地址放在VLC network中rtmp://10.10.10.10:8001/live/test 即可查看推流视频
了解了以上信息有助于我们部署和测试视频流, 排查测试工程中出现的问题, 协助开发定位问题.
Story:
无论你天资如何,无论你有多大的缺陷,决定你输赢的都不是这些,而是你是否能永远清醒地认识自己,是否能做到戒骄戒躁。在跑步时,跑得快的不一定赢;在打架时,实力弱的不一定输。没到最后一刻,都无法定输赢。只有笑到最后的人,才是真正的赢家。所以,不懈地努力吧!