当前位置: 首页 > news >正文

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

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

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命令如下:

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流:

http://www.lryc.cn/news/519861.html

相关文章:

  • 大语言模型预训练、微调、RLHF
  • vue3后台系统动态路由实现
  • 解决idea中无法拖动tab标签页的问题
  • WMS仓库管理系统,Vue前端开发,Java后端技术源码(源码学习)
  • 25/1/12 嵌入式笔记 学习esp32
  • 【NLP】ELMO、GPT、BERT、BART模型解读及对比分析
  • go语言学习(数组,切片,字符串)
  • PM 实战 - 智能药盒PRD + 市场规模分析
  • SQL刷题快速入门(二)
  • hive迁移后修复分区慢,怎么办?
  • 代码随想录算法训练营day27
  • python 代码使用 DeepXDE 库实现了一个求解二维非线性偏微分方程(PDE)的功能
  • 【Go】:深入解析 Go 1.24:新特性、改进与最佳实践
  • VUE3 一些常用的 npm 和 cnpm 命令,涵盖了修改源、清理缓存、修改 SSL 协议设置等内容。
  • 【SpringBoot】@Value 没有注入预期的值
  • 【STM32-学习笔记-6-】DMA
  • js实现一个可以自动重链的websocket客户端
  • 企业总部和分支通过GRE VPN互通
  • 油猴支持阿里云自动登陆插件
  • 【2024年华为OD机试】(C卷,100分)- 字符串筛选排序 (Java JS PythonC/C++)
  • iOS - runtime总结
  • 第33 章 - ES 实战篇 - MySQL 与 Elasticsearch 的一致性问题
  • Artec Leo 3D扫描仪与Ray助力野生水生动物法医鉴定【沪敖3D】
  • PythonQT5打包exe线程使用
  • 【Powershell】Windows大法powershell好(二)
  • 前端学习-环境this对象以及回调函数(二十七)
  • Element-plus、Element-ui之Tree 树形控件回显Bug问题。
  • 互联网全景消息(10)之Kafka深度剖析(中)
  • Oracle Dataguard(主库为双节点集群)配置详解(5):将主库复制到备库并启动同步
  • pytorch小记(一):pytorch矩阵乘法:torch.matmul(x, y)