VLC 推RTP流

您所在的位置:网站首页 ffmpeg发送rtp VLC 推RTP流

VLC 推RTP流

2023-09-28 15:21| 来源: 网络整理| 查看: 265

背景

最近有播放RTP流的需求,在网络上寻觅良久也未找到可以使用的RTP直播地址。于是基于VLC搭建了RTP服务器,最后验证通过。先直接上步骤再作说明。

组网环境

1. VLC软件版本 3.0.11 Vetinari

 

VLC软件版本 3.0.11 Vetinari

这儿说明软件版本只是为了表明测试使用软件详细信息,不代表必须是此VLC版本。

2. 组网方式,客户端和服务端直连

手动设置PC机的IPV4地址192.168.0.1,

设置开发板的地址ifconfig eth0 192.168.0.2

VLC推流

1. 选择 媒体->流,点击按钮,选择需要串流的文件。

2. 点击 ,点击 下一个,出现如下界面:

3. 点击 左侧的下拉框,选择并点击 添加

4.在地址处填入组播地址,这一点非常重要。测试使用了地址 224.224.224.224,基本端口 可以不用修改,流名称 未填写,点击下一个。播放时使用的URL是:rtp://224.224.224.224:5004

5.将转码选项中的勾去掉,这一点在开始调试时也很重要,原因后面讲述,点击下一个。

6. 最后点击就可以了。

注意事项

1. 目前可以方便搭建的推流服务器软件可以是VLC,也可以是FFMPEG。

2. 开发板和推流服务器要处于同一个局域网中,测试过程中使用路由器和网线直连的方式,开发板都可以正常播放RTP流。

3. 推流的地址一定要是组播地址,不能是自己PC地址。自己PC地址,在相同PC上,播放器可以拿到RTP流,但是其他PC或者开发板都不能拿到RTP流。

4. 将激活转码去掉的原因:比如转成AVC,使用分辨率较低的影片实际测试过程中发现,相当长的时间内都没有能够正确解出AVC的SPS,PPS信息,出现黑屏。

5. 推流过程中,可以更换码流,这时候播放器就需要根据码流类型的改变作出自适应处理,避免长时间卡住。

6.如果在播放过程中出现了setsockopt(IP_ADD_MEMBERSHIP): No such device错误,那是因为多播地址还未加入到路由表中,使用如下命令:

route add -net 224.224.224.224 netmask 255.255.255.255 eth0

即可,其中224.224.224.224是要使用的多播放地址。

7. FFMPEG推流时,如果推流的格式使用RTP,即-f后面的参数为rtp时,一次只能推单流,音频和视频不能同时推。

ffmpeg.exe -re -stream_loop -100 -i F:\clip\mkv\32842.mkv -vcodec copy -an -f rtp rtp://224.224.224.223:5004

需要同时推送音视频时,建议将推流格式设置成rtp_mpegts

ffmpeg.exe -re -stream_loop -100 -i D:\clip\kh264_mp3.mp4 -vcodec copy -acodec copy -f rtp_mpegts rtp://224.224.224.224:5004

使用VLC推流,开发板经常拿不到正常的音频流,同一个组网环境另一台非VLC server 的PC机能够拿到正常的音视频流。使用FFMPEG推流,非VLC server 的PC机和开发板都能够正常播放。

8.有些局域网的路由器或者交换机对组播功能支持不好。即便是同一个局域网,RTP服务器正常推流,开发板也不一定能够拿到流播放,测试时还是需要直连。



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3