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

相关推荐
alive9031 天前
FFmpeg移植教程(linux平台)
linux·ubuntu·ffmpeg·ffmpeg移植
Antonio9151 天前
【音视频】 FFmpeg 解码H265
ffmpeg·音视频
hvinsion1 天前
【开源工具】音频格式转换大师:基于PyQt5与FFmpeg的高效格式转换工具开发全解析
python·qt·ffmpeg·开源·音视频·视频编解码·音频转换
小狮子安度因2 天前
关于ffplay在macos上运行奔溃的问题
macos·ffmpeg
学IT的小卢2 天前
SDL_CreateRendererWithProperties报错Parameter ‘window‘ is invalid
ffmpeg
SuperW2 天前
FFMPEG推流器讲解
ffmpeg
Tipriest_2 天前
linux有效裁剪视频的方式(基于ffmpeg,不改变分辨率,帧率,视频质量,不需要三方软件)
linux·ffmpeg·音视频
aqi002 天前
FFmpeg开发笔记(六十二)Windows给FFmpeg集成H.266编码器vvenc
ffmpeg·音视频·直播·流媒体
姓刘的哦2 天前
FFmpeg学习笔记
笔记·学习·ffmpeg
煮雪品茶3 天前
使用摄像头推流+VLC软件拉流
ffmpeg