实时视频RTMP

2019-07-30 15:30:26 浏览数 (1)

实时视频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:

无论你天资如何,无论你有多大的缺陷,决定你输赢的都不是这些,而是你是否能永远清醒地认识自己,是否能做到戒骄戒躁。在跑步时,跑得快的不一定赢;在打架时,实力弱的不一定输。没到最后一刻,都无法定输赢。只有笑到最后的人,才是真正的赢家。所以,不懈地努力吧!

0 人点赞