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

相关推荐
不太会编程的IT男4 小时前
在 Jetson Orin 开发套件上使用 Hardware Encoder / Decoder 构建 FFmpeg
ffmpeg·视频编解码·h.264
m0_687399846 小时前
写一个Ununtu C++ 程序,调用ffmpeg API, 来判断一个数字电影的视频文件mxf 是不是Jpeg2000?
开发语言·c++·ffmpeg
aqi008 小时前
FFmpeg开发笔记(七十一)使用国产的QPlayer2实现双播放器观看视频
android·ffmpeg·音视频·流媒体
Java患者·11 小时前
【小白】linux安装ffmpeg | java转码 【超详细】
ffmpeg
suifen_11 小时前
RK平台ffmpeg支持硬件编解码
ffmpeg
feiyangqingyun12 小时前
全网唯一/Qt结合ffmpeg实现手机端采集摄像头推流到rtsp或rtmp/可切换前置后置摄像头/指定分辨率帧率
qt·智能手机·ffmpeg
melonbo21 小时前
使用FFmpeg将H.264码流封装为MP4
ffmpeg·音视频·h.264
aqi001 天前
FFmpeg开发笔记(七十七)Android的开源音视频剪辑框架RxFFmpeg
android·ffmpeg·音视频·流媒体
慢行的骑兵1 天前
Android音视频探索之旅 | CMake基础语法 && 创建支持Ffmpeg的Android项目
ffmpeg·音视频
Little_Code1 天前
uniapp 使用ffmpeg播放rtsp
ffmpeg·uni-app·rtsp