首页 > 其他分享 >FFmpeg推拉流命令

FFmpeg推拉流命令

时间:2024-04-06 11:22:05浏览次数:34  
标签:协议 编码器 流媒体 FFmpeg 传输 命令 推拉 拉流 推流

FFmpeg推拉流命令

命令简介

它可以将本地的视频/音频流推送到服务器,也可以将服务器上的音视频流拉到本地。

推流命令的命令格式

ffmpeg -re -i [输入文件] -c:v [视频编码器] -c:a [音频编码器] -f [输出格式] [推流地址]

参数解析

  • -re 表示采用实时模式,以原始速度推流;
  • -i [输入文件] 表示输入源,可以是本地文件、摄像头、屏幕录制等;
  • -c:v [视频编码器] 表示视频编码器,可以选择H.264、H.265等编码器(可选);
  • -c:a [音频编码器] 表示音频编码器,可以选择AAC、MP3等编码器(可选);
  • -f [输出格式] 表示推流输出格式,一般为RTMP协议;
  • [推流地址] 表示推流地址,格式为[协议名]://[服务器地址]/[应用名]/[流名]

拉流命令的命令格式

ffmpeg -i [拉流地址] [输出参数] [输出文件]

参数解析

  • -i [拉流地址] 表示拉流地址,格式为[协议名]://[服务器地址]/[应用名]/[流名]
  • [输出参数] 表示输出参数,可以指定视频分辨率、帧率、码率等参数;
  • [输出文件] 表示输出文件名,一般为本地文件。

协议

  • RTMP:RTMP是一种实时消息传输协议,它通常用于将音频、视频和数据流从推流端传输到支持RTMP协议的流媒体服务器。RTMP在直播、点播和互动应用中得到广泛应用。
  • HTTP:HTTP是一种常用的网络协议,用于在Web上传输超文本和其他资源。在流媒体中,HTTP协议可以通过HTTP Live Streaming(HLS)或Dynamic Adaptive Streaming over HTTP(DASH)等协议来进行流媒体的传输和播放。
  • UDP:UDP是一种无连接的传输协议,适用于实时传输和实时性要求较高的应用,如实时直播和视频会议。UDP提供了快速传输和较低的延迟,但不保证可靠性。
  • RTP:RTP是一种用于实时传输音视频数据的协议,常用于音视频会议、IP电话和流媒体传输。RTP通过提供序列号、时间戳和负载类型等信息,实现了对实时数据的传输和同步。
  • RTSP:RTSP是一种用于控制实时流媒体的传输协议,用于控制流媒体的播放、暂停、快进等操作。RTSP常与RTP协议结合使用,实现流媒体的传输和控制。
  • SRT: SRT是一种可靠的流媒体传输协议,具有低延迟和高安全性,适用于远程视频传输和点对点直播等场景。

例子

从某个直播流网址拉取直播流

ffmpeg -i rtmp://liteavapp.qcloud.com/live/liteavdemoplayerstreamid output.mp4

注意:当你输入上面的命令后会一直拉流,直到该地址的流被拉完(直播/视频结束),如果想中途截止拉流可以使用ctrl+c终止拉流,这样会终止掉拉流,并且之前拉的流已经存在在你指定的output.mp4中。

标签:协议,编码器,流媒体,FFmpeg,传输,命令,推拉,拉流,推流
From: https://www.cnblogs.com/xiaobai1523/p/18117258

相关文章

  • AutoCAD命令
    快捷命令 L直线M移动C圆EL椭圆XL射线轴线RO旋转E删除H填充TR修剪EX延伸PO点S拉伸U返回DDI直径标注DAN角度标注OP系统选项设置A圆弧T多行文字B块定义I块插入W定义块文件CO复制MI镜像O偏移F倒直角或圆角D标注样式DLI线......
  • docker、docker-compose 常用命令
    1.docker常用命令创建容器:dockercreate启动容器:dockerstart[id]停止容器:dockerstop [id]停止全部运行的容器:dockerstop`dockerps-q`重启容器:dockerrestart [id] 查看运行中的容器:dockerps查看所有容器(包括已停止的):dockerps-a删除容器:dockerrm容器id查......
  • 使用pip install mysqlclient命令安装mysqlclient失败?
    写在前面我们使用Django、flask等来操作MySQL,实际上底层还是通过Python来操作的。因此我们想要用Django来操作MySQL,首先还是需要安装一个驱动程序。在Python3中,驱动程序有多种选择。比如有pymysql以及mysqlclient等。常见的Mysql驱动介绍:MySQL-python:也就是MySQLdb。是对C语言操......
  • Linux gunzip命令教程:如何使用gunzip命令进行文件解压缩(附实例详解和注意事项)
    Linuxgunzip命令介绍gunzip是一个用于解压缩文件的命令行工具。它可以接受所有以.gz、.z、_z、-gz、-z、.Z、.taz或.tgz为扩展名的文件,并默认将压缩文件替换为原始文件。解压后的文件保留其实际扩展名。Linuxgunzip命令适用的Linux版本gunzip命令在大多数Linux发行版中......
  • Linux ulimit命令教程:如何查看和设置系统资源限制(附实例详解和注意事项)
    Linuxulimit命令介绍ulimit是一个内置的Linuxshell命令,它允许查看或限制单个用户可以消耗的系统资源量。在有多个用户和系统性能问题的环境中,限制资源使用是非常有价值的。Linuxulimit命令适用的Linux版本ulimit命令在所有主流的Linux发行版中都是可用的,包括Debian、U......
  • lessc assets/index.less assets/index.css这个命令的作用是什么?
    lesscassets/index.lessassets/index.css这个命令的作用是什么?lesscassets/index.lessassets/index.css这条命令是用来编译Less样式表文件的。具体来说,它的作用如下:lessc:这是Less编译器的命令行工具(lesscstandsforlesscompiler)。它是Less预处理器的一个组成......
  • adb命令大全(含高级用法,均已实际使用验证)
    目录Android调试桥(adb)Ubuntu系统安装adbadb命令基础用法adb命令高级用法Android调试桥(adb)ADB是一款多功能命令行工具,可让你通过USB或Wi-Fi与Android设备通信。它用于各种任务,包括:调试应用程序安装和卸载应用传输文件检索设备信息运行shell命令Ubun......
  • ctfshow--红包题第二弹 临时文件命令执行
    上来先代码审计点击查看代码<?phpif(isset($_GET['cmd'])){$cmd=$_GET['cmd'];highlight_file(__FILE__);if(preg_match("/[A-Za-oq-z0-9$]+/",$cmd)){die("cerror");......
  • linux之shell: chmod 命令后面数字权限的详细解释
    Linux中的文件权限管理在Linux系统中,文件和目录的权限管理是保证系统安全的重要机制。通过chmod命令,用户可以更改文件或目录的访问权限。权限类型Linux系统中的权限分为三种:所有者(Owner):文件或目录的创建者。组(Group):与文件或目录关联的用户组。其他用户(Others):系统......
  • FFmpeg 时间戳与时间基
    FFmpeg时间戳与时间基什么是时间基?FFmpeg中时间基是时间刻度,表示每个刻度有多少秒,能更精确的度量时间。在不同的封装格式下,时间基是不同的。简单来说,比如一个时间刻度是0.0001秒,那么时间基就是1/10000。时间基=时间刻度在FFmpeg中表示时间基的的结构体是AVRational,其实就......