本教程使用windows环境 FFmpeg推流本地视频文件到RTSP服务器并使用VLC播放器拉流
1、环境搭建
1.1 下载RTSP服务器
rtsp-simple-server是一个rtsp推流流媒体服务器,可以与gstreamer或ffmpeg结合进行推流。下载对应平台版本,直接运行即可。
下载地址:Github地址,具体的下载:要用的rtsp版本
1.2 下载FFmpeg
下载地址:Github地址,具体的下载:要用的FFmpeg版本
1.3 解压文件
- 将下载的压缩包ffmpeg-master-latest-win64-gpl.zip和rtsp-simple-server_v0.19.0_windows_amd64.zip解压完成。
- 将ffmpeg-master-latest-win64-gpl目录下的bin目录下的ffmpeg.exe、ffplay.exe、ffprobe.exe执行文件和rtsp-simple-server_v0.20.0_windows_amd64目录下的rtsp-simple-server.exe 、rtsp-simple-server.yml 文件放在同一个文件夹下。
1.4 获取一个视频文件
本地准备一个视频文件,下面使用的是1.mp4。
2、启动服务器推流
2.1 打开RTSP服务器
打开cmd终端,切换到上文所述的文件夹路径下,执行
rtsp-simple-server.exe
看到[RTSP] listener opened on :8554 (TCP),就说明rtsp服务器启动成功了
2.2 使用ffmpeg进行推流本地文件
将要进行推流的本地视频文件放在上文所述的文件夹路径下,打开一个新的cmd终端,切换到上文所述的同样的路径下,输入命令
ffmpeg -re -stream_loop -1 -i 1.mp4 -c copy -f rtsp rtsp://127.0.0.1:8554/video
如果要涉及编解码的推流: 一般推拉流视频编码选择h264,音频编码选择aac;如果视频服务器性能更好,以及客户端支持h265,则可以使用h265.h265压缩效率更高,但更耗cpu.
h264:
ffmpeg -re -stream_loop -1 -i test25m.mp4 -vcodec libx264 -tune zerolatency -preset ultrafast -bsf:v h264_mp4toannexb -g 15 -keyint_min 15 -profile:v baseline -level 3.1 -pix_fmt yuv420p -r 15 -acodec aac -f flv rtmp://192.168.101.42:1935/live/1001
h265:
ffmpeg -re -stream_loop -1 -i test25m.mp4 -vcodec libx265 -acodec aac -f rtsp rtsp://192.168.101.42:8554/live/1002
'注意:遇到“ffmpeg将视频转成rtsp报错Could not write header for output file #0”,将端口号删除可以解决:ffmpeg -re -stream_loop -1 -i person1080.mp4 -c copy -f rtsp rtsp://127.0.0.1/video
参数说明
-re 是以流的方式读取
-stream_loop -1 表示无限循环读取
-i 就是输入的文件
-f 格式化输出到哪里
执行完毕后,如下所示
2.3 打开VLC media Palyer
打开VLC media Palyer播放器(也可以使用迅雷影音),选择媒体->打开网络串流
输入rtsp://127.0.0.1:8554/video
点击播放,就可以看到视频在播放了
参考
windows环境下,搭建RTSP视频推流服务器
windows&&linux环境下实现ffmpeg&&vlc rtsp本地视频、摄像头推流,VLC推拉流