【ffmpeg命令】ffmpeg ffplay udp推拉流-单播-组播-广播

2023-11-01 15:10

本文主要是介绍【ffmpeg命令】ffmpeg ffplay udp推拉流-单播-组播-广播,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 前言
    • UDP 单播推拉流
    • UDP 组播推拉流
      • udp组播地址
    • UDP 广播推拉流
    • FFmpeg 推多路流
    • FFmpeg 推流参数注释
      • 测试网络MTU大小
    • FFplay 参数注释
    • 总结


前言

ffmepg 支持非常丰富的推流命令,简单介绍一下使用 ffmpeg 和 ffplay 在局域网使用 udp协议推拉流。

UDP 单播推拉流

# udp 单播推流
ffmpeg.exe -re -stream_loop -1 -i .\JFLA.mp4 -vcodec copy -pkt_size 1300 -f h264 "udp://192.168.22.83:10189"# udp 单播拉流
ffplay.exe -f h264 "udp://192.168.22.83:10189" -fflags nobuffer -nofind_stream_info

UDP 组播推拉流

udp组播地址

组播地址范围 224.0.0.0 – 239.255.255.255
224.0.0.0–224.0.0.255 本地保留,给知名协议使用,ttl=1。其中224.0.0.1是本网所有主机接收,224.0.0.2是本网所有路由器接收。

# udp 组播推流
ffmpeg.exe -re -stream_loop -1 -i .\JFLA.mp4 -vcodec copy -pkt_size 1300 -f h264 "udp://239.0.0.1:54546?buffer_size=0&localaddr=192.168.22.119" # udp 组播拉流
ffplay.exe -f h264 "udp://239.0.0.1:54546" -fflags nobuffer -nofind_stream_info

UDP 广播推拉流

# udp 广播推流
ffmpeg.exe -re -stream_loop -1 -i .\JFLA.mp4 -vcodec copy -pkt_size 1300 -f h264 "udp://192.168.22.255:10189"# udp拉流
ffplay.exe -f h264 "udp://192.168.22.119:10189" -fflags nobuffer -nofind_stream_info

FFmpeg 推多路流

参考文档: https://trac.ffmpeg.org/wiki/Creating%20multiple%20outputs#Duplicateoutputs
参考文档: https://ffmpeg.org/ffmpeg-formats.html#tee

FFmpeg 编码一路流推 N路流。

Duplicate outputs

# ffmpeg 推三路 udp流 使用 h264 格式
ffmpeg.exe -re -stream_loop -1 -i .\JFLA.mp4 -vcodec copy -an -f tee -map 0:v -map 0:a "[f=h264]udp://192.168.22.71:10189|[f=h264]udp://192.168.22.20:10189|[f=h264]udp://192.168.22.70:10189|[f=h264]udp://192.168.22.129:10189"

FFmpeg 推流参数注释

参考FFmpeg doc :http://ffmpeg.org/ffmpeg-all.html

善用 Ctrl + F 全局搜索

-re  # 按照原始帧率读取输入 Read input at native frame rate. This is equivalent to setting -readrate 1-stream_loop # 设置推流循环次数,-1 表示无限循环-pkt_size # Set the size in bytes of UDP packets 某些电脑的最大 MTU 不是1500 需要指定 udp包的大小,如果发送udp包大于MTU,会丢包-f  # 指定推流format -vcodec # 设置视频编码格式,copy表示不重新编码 

测试网络MTU大小

# -f             在数据包中设置“不分段”标记(仅适用于 IPv4)
# -l size        发送缓冲区大小ping -f -l 1472 192.168.22.80

FFplay 参数注释

参考 FFplay Doc : http://ffmpeg.org/ffplay-all.html
善用 Ctrl + F 全局搜索

-fflags nobuffer # 低延迟拉流必备参数 Reduce the latency introduced by buffering during initial input streams analysis -find_stream_info   # 开启码流格式探测 默认是开启的
-nofind_stream_info # 关闭码流格式探测 提升首帧打开时间-x width # Force displayed width.-y height # Force displayed height.-fs # Start in fullscreen mode.-an # Disable audio.-vn # Disable video.

总结

某些设备测试局域网 udp推流需要关闭防火墙,否则收不到 udp的包导致无法拉流。

感谢您的阅读。

若有帮助幸甚。


  1. FFmpeg 官方文档:http://ffmpeg.org/documentation.html

这篇关于【ffmpeg命令】ffmpeg ffplay udp推拉流-单播-组播-广播的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/323878

相关文章

Redis 的 SUBSCRIBE命令详解

《Redis的SUBSCRIBE命令详解》Redis的SUBSCRIBE命令用于订阅一个或多个频道,以便接收发送到这些频道的消息,本文给大家介绍Redis的SUBSCRIBE命令,感兴趣的朋友跟随... 目录基本语法工作原理示例消息格式相关命令python 示例Redis 的 SUBSCRIBE 命令用于订

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

基于Java和FFmpeg实现视频压缩和剪辑功能

《基于Java和FFmpeg实现视频压缩和剪辑功能》在视频处理开发中,压缩和剪辑是常见的需求,本文将介绍如何使用Java结合FFmpeg实现视频压缩和剪辑功能,同时去除数据库操作,仅专注于视频处理,需... 目录引言1. 环境准备1.1 项目依赖1.2 安装 FFmpeg2. 视频压缩功能实现2.1 主要功

Linux查询服务器 IP 地址的命令详解

《Linux查询服务器IP地址的命令详解》在服务器管理和网络运维中,快速准确地获取服务器的IP地址是一项基本但至关重要的技能,下面我们来看看Linux中查询服务器IP的相关命令使用吧... 目录一、hostname 命令:简单高效的 IP 查询工具命令详解实际应用技巧注意事项二、ip 命令:新一代网络配置全

Linux grep 命令的使用指南

《Linuxgrep命令的使用指南》本文给大家介绍Linuxgrep命令的使用指南,包括基础搜索语法、实践指南,感兴趣的朋友跟随小编一起看看吧... 目录linux grep 命令全面使用指南一、基础搜索语法1. 基本文本搜索2. 多文件搜索二、常用选项详解1. 输出控制选项2. 上下文控制选项三、正则表达

DNS查询的利器! linux的dig命令基本用法详解

《DNS查询的利器!linux的dig命令基本用法详解》dig命令可以查询各种类型DNS记录信息,下面我们将通过实际示例和dig命令常用参数来详细说明如何使用dig实用程序... dig(Domain Information Groper)是一款功能强大的 linux 命令行实用程序,通过查询名称服务器并输

Linux之UDP和TCP报头管理方式

《Linux之UDP和TCP报头管理方式》文章系统讲解了传输层协议UDP与TCP的核心区别:UDP无连接、不可靠,适合实时传输(如视频),通过端口号标识应用;TCP有连接、可靠,通过确认应答、序号、窗... 目录一、关于端口号1.1 端口号的理解1.2 端口号范围的划分1.3 认识知名端口号1.4 一个进程

setsid 命令工作原理和使用案例介绍

《setsid命令工作原理和使用案例介绍》setsid命令在Linux中创建独立会话,使进程脱离终端运行,适用于守护进程和后台任务,通过重定向输出和确保权限,可有效管理长时间运行的进程,本文给大家介... 目录setsid 命令介绍和使用案例基本介绍基本语法主要特点命令参数使用案例1. 在后台运行命令2.

Linux如何查看文件权限的命令

《Linux如何查看文件权限的命令》Linux中使用ls-R命令递归查看指定目录及子目录下所有文件和文件夹的权限信息,以列表形式展示权限位、所有者、组等详细内容... 目录linux China编程查看文件权限命令输出结果示例这里是查看tomcat文件夹总结Linux 查看文件权限命令ls -l 文件或文件夹