基于EasyDarwin、ffmpeg实现rtsp推流,及VLC播放

文本主要是对工具的一些操作,并不包含代码。
主要内容是在本地,借助EasyDarwin启动rtsp服务器,用ffmpeg进行rtsp数据源的推流,最后用VLC在本地播放视频流。

安装

EasyDarwin

官网:http://www.easydarwin.org/
基于EasyDarwin、ffmpeg实现rtsp推流,及VLC播放_第1张图片

ffmpeg

官网:https://ffmpeg.org/

其中linux版本,解压之后,
./configure --prefix=/usr/local/ffmpeg ; make -j8 ; make install

VLC

官网:https://www.videolan.org/
基于EasyDarwin、ffmpeg实现rtsp推流,及VLC播放_第2张图片

windows

启动rtsp server

EasyDarwin解压后,分别是4个文件:
在这里插入图片描述
功能分别是:

  1. 前台启动EasyDarwin,即需要保持命令行窗口的开启;
  2. 配置文件,端口号、后台登录信息等;
  3. 后台启动EasyDarwin服务,即关闭命令行窗口也在后台执行;
  4. 关闭第三个文件启动的EasyDarwin服务。

启动后可以看到rtsp服务器监听的ip地址、端口,监听的http地址则用于在本地可视化查看服务器情况。
基于EasyDarwin、ffmpeg实现rtsp推流,及VLC播放_第3张图片

ffmpeg推流

ffmpeg -re -stream_loop -1 -i E:\path_to_videos\video.mp4 -codec copy -acodec copy -rtsp_transport tcp -f rtsp rtsp://192.168.43.78/test.sdp

-re:使用视频源的帧率(fps)来推流,若去掉则会以数千fps推流;
-stream_loop:循环推流次数,-1为无限次;
-i:视频源,可以用视频文件、视频流等;
-codec:设置输出的视频编码格式,copy为复用视频源的编码格式;
-acodec:设置输出的音频编码格式,copy为复用视频源的编码格式;
-rtsp_transport:设置传输层的传输协议(rtsp是应用层协议),支持tcp、udp;
-f:输出格式,此处为rtsp;
最后的是输出的目标rtsp地址,其中ip地址就是rtsp服务器监听的ip地址。

在命令行执行后,就开始往rtsp服务器输送数据流了:
基于EasyDarwin、ffmpeg实现rtsp推流,及VLC播放_第4张图片
同时EasyDarwin也会收到一个rtsp推流:
在这里插入图片描述
登录监听的http网址,也能看到流的个数由0变为1了:
基于EasyDarwin、ffmpeg实现rtsp推流,及VLC播放_第5张图片

VLC播放

点击【媒体】-【打开网络串流】-【网络】
输入通过ffmpeg推流的rtsp地址
基于EasyDarwin、ffmpeg实现rtsp推流,及VLC播放_第6张图片
即可正常播放视频流:
基于EasyDarwin、ffmpeg实现rtsp推流,及VLC播放_第7张图片
同时在EasyDarwin的后台,拉流的个数也加了1:
基于EasyDarwin、ffmpeg实现rtsp推流,及VLC播放_第8张图片

同时推多流

对于同一个rtsp服务器,可以同时推多个rtsp流,只需要sdp名称不一致即可。
如test1.sdp、test2.sdp。
并且后台也能实时更新推流个数:
在这里插入图片描述
在VLC就能根据具体流的URL来播放对应的视频流。

ffplay播放

ffplay rtsp://192.168.43.78/test2.sdp

则会弹窗播放rtsp视频流。

转发rtsp流

转发rtsp流,即把rtsp的推流数据源也设为rtsp数据流。
在推流了rtsp://192.168.43.78/test.sdp之后,再执行:

ffmpeg -re -i rtsp://192.168.43.78/test.sdp -codec copy -acodec copy -rtsp_transport tcp -f rtsp rtsp://192.168.43.78/test2.sdp

此时test2.sdp转发了test.sdp的rtsp数据流。
对于两个视频流都能正常播放。

linux

参考文档

https://github.com/EasyDarwin/EasyDarwin
https://www.cnblogs.com/friend-c/p/13775754.html

你可能感兴趣的:(笔记,音视频,ffmpeg,EasyDarwin,VLC)