# 使用ffmpeg命令行工具

- 下载地址：<https://ffmpeg.org/download.html>
- 官方文档：<https://ffmpeg.org/documentation.html>
- 编译好的二进制：<https://github.com/GyanD/codexffmpeg/releases>

#### 使用命令行
```
# 命令行基本用法
# ffmpeg <全局参数> <输入参数> -i <输入文件> <输出参数> <输出文件>
```

```
# 自动推导视频播放URL
ffmpeg -v debug -re -i $(curl -L -s http://10.10.56.18:30088/video/common/videoApi?cid=557254322 | jq -r .data)  -vcodec libx264 -vf scale=1280:-1 -r 20 -an -f flv rtmp://ossrs:1935/csud/live/557254322

# 获取网络文件
ffmpeg -v debug -re -i https://qq829.cn/uploads/20221204/1.mp4 -vcodec libx264 -vf "scale=1280:-2" -r 20 -an -f flv rtmp:/ossrs:1935/csud/live/557254322

# 获取网络文件
ffmpeg -v debug -re -i https://qq829.cn/uploads/20221204/1.mp4 -vcodec libx264  -f flv rtmp://ossrs:1935/live/557254322

# 屏幕截图
ffmpeg -r 8 -f "gdigrab" -i "desktop" -vcodec libx264  -f flv rtmp://ossrs:1935/live/557254322

# -stream_loop -1 循环播放
# -v debug 打开调试信息
# -re 实时读取，既按原视频的帧率读取，否则会以最快的速度读取，通常在将视频文件读取为直播源的时候需要，摄像头（直播）源不需要
# -i 输入文件
# -vcodec libx264 视频编码器
# -vf "scale=1280:-2 "视频画面大小调整，-2指强制偶数对其，因为奇数会报错
# -r 20 输出帧率
# -an 静音
# -f flv  输出 格式

```
```
# 视频截图
ffmpeg  -i https://qq829.cn/uploads/20221204/1.mp4 -ss 20 -vframes 1 -vf scale=800:-2 -qscale:v 2 -y 2.jpg

# -ss 视频开始位置
# -vframes 输出视频的帧目数
# -vf scale 视频滤镜，-2 表示根据前一个参数自动计算，并强制对其偶数，因为奇数会报错
# -qscale:v 2 图片质量，取值为2-10之间，数值越小画质越好
```

#### 播放器
```
# 使用ffplay播放
ffplay 1.mp4
```
```
使用VLC播放:
https://srs.qq829.cn/csud/live/557254322.flv
https://srs.qq829.cn/csud/live/557254322.m3u8
```
```
# 使用bilibili开源的播放器
# https://github.com/xqq/mpegts.js
```

#### 视频信息查看
```shell

# 显示媒体格式信息
ffprobe -show_format d:/1.mp4

# 显示每天流信息
ffprobe -show_streams d:/1.mp4
```