【音视频】调试组播之环境搭建

废话不多讲,直接上干货。
调试组播rtp:协议头,windows本地环境搭建有两个方案:
1.ffmpeg推送rtp流
(1)安装ffmpeg
下载地址:https://ffmpeg.org/
下载windows builds到本地,修改环境变量指向*/ffmpeg/bin,打开cmd,输出“ffmpeg -version”,查看fffmpeg是否安装成功。

ffmpeg version N-100976-g5c8d4c4fac Copyright © 2000-2021 the FFmpeg
developers built with gcc 9.3-win32 (GCC) 20200320 configuration:
–prefix=/ffbuild/prefix --pkg-config-flags=–static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --enable-shared --disable-static --disable-w32threads --enable-pthreads --enable-iconv --enable-zlib --enable-libxml2 --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-opencl --enable-libvmaf --disable-vulkan --enable-libvorbis --enable-amf --enable-libaom --enable-avisynth --enable-libdav1d --enable-libdavs2 --enable-ffnvcodec --enable-cuda-llvm --disable-libglslang --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvpx --enable-libwebp --enable-libmfx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --enable-libvidstab --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-libs=-lgomp libavutil 56. 64.100 / 56. 64.100 libavcodec 58.120.100 / 58.120.100 libavformat 58.
66.100 / 58. 66.100 libavdevice 58. 11.103 / 58. 11.103 libavfilter 7.102.100 / 7.102.100 libswscale 5. 8.100 / 5. 8.100 libswresample 3. 8.100 / 3. 8.100 libpostproc 55. 8.100 / 55.
8.100

(2)ffmpeg命令导出sdp信息

ffmpeg -re -i D:\test\screen.mp4 -vcodec copy -f rtp rtp://127.0.0.1:8888 > video.sdp

推流命令的sdp信息会输出到屏幕上,但是一般播放器播放rtp码流的时候都需要相应rtp码流的sdp信息,故而需要将sdp信息导出到文件,以便播放器读取sdp信息。
(3)sdp信息

SDP: v=0

o=- 0 0 IN IP4 127.0.0.1

s=No Name

c=IN IP4 127.0.0.1

t=0 0

a=tool:libavformat 58.66.100

m=video 8888 RTP/AVP 96

b=AS:699

a=rtpmap:96 H264/90000

a=fmtp:96 packetization-mode=1;
sprop-parameter-sets=Z0IAKPQCgC3I,aM44gA==; profile-level-id=420028

对于上述sdp.txt文件,测试发现VLC播放器无法直接正确读取解析,需要删除前几行信息。
更改后得到:

a=tool:libavformat 58.66.100

m=video 8888 RTP/AVP 96

b=AS:699

a=rtpmap:96 H264/90000

a=fmtp:96 packetization-mode=1;
sprop-parameter-sets=Z0IAKPQCgC3I,aM44gA==; profile-level-id=420028

(4)用VLC读取修改后的sdp
打开VLC–>媒体–>打开文件,读取video.sdp后,按下播放使vlc处于等待码流的状态。
(5)输入ffmpeg命令进行推送ftp流

ffmpeg -re -i D:\test\screen.mp4 -vcodec copy -f rtp rtp://127.0.0.1:8888

然后就有视频了。

2用VLC推送rtp流.
(1)配置rtp流方案
打开“媒体”–>“流”
【音视频】调试组播之环境搭建
【音视频】调试组播之环境搭建
【音视频】调试组播之环境搭建
【音视频】调试组播之环境搭建【音视频】调试组播之环境搭建
【音视频】调试组播之环境搭建
【音视频】调试组播之环境搭建然后点击流,就可以播放了,再打开一个播放器,输入“rtp://@127.0.0.1:5004”播放rtp流。
效果如下:
【音视频】调试组播之环境搭建
这样就可以调试自己播放器的rtp://流了

上一篇:【mediasoup】判断数据包是否是rtp包


下一篇:TSINGSEE青犀视频云边端架构视频流传输平台中RTSP、RTCP、RTP三种协议有什么区别?