文章目录
- 前言
- 一、FFmpeg的安装
- 二、FFmpeg的使用
- 1.获取设备相关命令
- 2.直播相关命令
- 2.1 直播推流
- 2.2 直播拉流
- 2.3 播放验证
前言
FFmpeg是领先的多媒体框架,能够解码,编码, 转码,多路复用器,解复用器,流式传输,过滤和播放人类和机器创建的几乎所有内容。它支持最晦涩难懂的古代格式,直到最前沿。无论它们是由某些标准委员会,社区还是公司设计的。它还具有高度的可移植性:FFmpeg在各种构建环境,机器架构和配置下编译,运行并通过了我们在Linux,Mac OS X,Microsoft Windows,BSD,Solaris等上。
一、FFmpeg的安装
FFmpeg的官网:http://ffmpeg.org/download.html#build-windows
下载window版本
点击后会跳转到github上:https://github.com/BtbN/FFmpeg-Builds/releases
下载文件
下载完成后设置环境变量
在终端输入:ffmpeg -version
出现以上信息代表安装成功
二、FFmpeg的使用
1.获取设备相关命令
代码语言:javascript复制ffmpeg -f dshow -list_devices true -i dummy
2.直播相关命令
2.1 直播推流
本地视频推流
代码语言:javascript复制ffmpeg -re -i out.mp4 -c copy -f flv rtmp://server/live/streamname
相关命令介绍
- -re 减慢帧率速度,让帧率与视频真正帧率保持同步
- -i out.mp4 需要推出去的文件
- -c 音视频编解码,copy音频与视频的参数不变;如果专门指定音频那就是-acodec,如果专门指定视频那就是-vcodec
- -f flv 推出去的文件格式是flv
- rtmp://server/live/streamname 服务器地址,将视频推送到rtmp服务器上,其他端就可以从rtmp服务器上拉流看到直播影像
本地设备推流
代码语言:javascript复制ffmpeg -f dshow -i video="摄像头名称" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv 推流地址
2.2 直播拉流
代码语言:javascript复制ffmpeg -i rtmp://server/live/streamname -c copy dump.flv
- 实例 ffmpeg -i http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8 -c copy dump.m3u8 (拉取什么格式就保存成什么格式)
- ffplay dump.m3u8
- -c copy 对于拉到的数据流不做重新编码,不对音视频参数做任何处理
- dump.flv 拉取到本地后保存成 dump.flv 文件
2.3 播放验证
代码语言:javascript复制ffplay -i "拉流地址" -fflags nobuffer
nobuffer为实时播放