音视频入门基础:RTP专题(2)——使用FFmpeg命令生成RTP流

通过FFmpeg命令可以将一个媒体文件转推RTP:

bash 复制代码
ffmpeg -re -stream_loop -1 -i input.mp4 -c:v copy -an -f rtp rtp://192.168.0.102:5400

但是通过ffplay尝试播放上述产生的RTP流时会报错:"Unable to receive RTP payload type 96 without an SDP file describing it"。这是由播放RTP视频时未提供对应的SDP文件导致。SDP文件包含有关媒体流的详细信息(例如编解码器类型和参数、传输协议和端口等),没有SDP文件,ffplay等播放器就无法正确地解析RTP数据包并进行播放:

所以修改转推RTP的FFmpeg命令如下:

bash 复制代码
ffmpeg -re -stream_loop -1 -i input.mp4 -vcodec copy -an -f rtp rtp://192.168.0.102:6005 -acodec copy -vn -sdp_file XXX.sdp -f rtp rtp://192.168.0.102:7005

其中:

-re参数:以原始帧速率读取输入。即按时间戳读取文件,以本地帧频读数据。该参数可以避免需要被转推的本地媒体文件一下子就被读完了。

-stream_loop参数:循环次数。该参数可以使得需要被转推的本地媒体文件被读取完后可以循环读取。值为-1表示无限循环。

执行上述命令后,ffmpeg所在目录下会生成SDP文件:

通过命令:ffmpeg -protocol_whitelist "file,rtp,udp" -i XXX.sdp 可以查看生成的RTP流的信息:

通过命令:ffplay -protocol_whitelist "file,rtp,udp" -i XXX.sdp 可以播放生成的RTP流:

相关推荐
花开莫与流年错_21 小时前
音频相关数学支持
数学·音视频·音频·软件
嘀咕博客2 天前
Krea Video:Krea AI推出的AI视频生成工具
人工智能·音视频·ai工具
计算机视觉-Archer2 天前
联想win11笔记本音频失效,显示差号(x)
音视频
瑶光守护者2 天前
【卫星通信】超低码率语音编码ULBC:EnCodec神经音频编解码器架构深度解析
深度学习·音视频·卫星通信·语音编解码·ulbc
枫叶梨花2 天前
从 M4S 到 MP4:用 FFmpeg 轻松合并音视频文件
ffmpeg·音视频
胖虎12 天前
(二十一)深入了解AVFoundation-编辑:导出视频与格式转换的全流程
音视频·音视频导出·音视频格式转换
米优2 天前
FFmpeg添加水印
ffmpeg
blanks20203 天前
qt mac 解决 info.plist 自定义问题
ffmpeg
奋斗的小羊羊3 天前
HTML5关键知识点之多种视频编码工具的使用方法
前端·音视频·html5
跨界混迹车辆网的Android工程师4 天前
HEVC(H.265)与HVC1的关系及区别
音视频·h.265