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中。

相关推荐
猿小路1 天前
视频流熟知
ffmpeg·h.264
chen_2271 天前
动态桌面方案
c++·qt·ffmpeg·kanzi
GeniuswongAir2 天前
苹果电脑上启动一个 RTSP 推流,用来做测试
ffmpeg
Benny的老巢2 天前
n8n工作流通过Execute Command用FFmpeg处理音频,报错 stderr maxBuffer length exceeded的解决方案
ffmpeg·音频合成·n8n·n8n工作流·execute command
七夜zippoe3 天前
Spring Data JPA原理与实战 Repository接口的魔法揭秘
java·ffmpeg·事务·jpa·repository
Benny的老巢3 天前
n8n工作流中FFmpeg 视频截取失败排查:文件路径和参数顺序错误解决方案
chrome·ffmpeg·音视频
RockWang.4 天前
【配置】FFmpeg配置环境ubuntu踩坑记录。
ffmpeg
王者鳜錸4 天前
Java使用FFmpeg获取音频文件时长:完整实现与原理详解
java·开发语言·ffmpeg·音频时长
桃杬4 天前
用现代 C++ 封装 FFmpeg:从摄像头采集到 H.264 编码的完整实践
c++·ffmpeg·h.264
cvcode_study5 天前
FFmpeg 工具基础
ffmpeg