ffmpeg 视频处理命令集合

最近用到ffmpeg来处理视频,把用到的命令整理在这里做个备忘。

使用的ffmpeg版本2.0.1,从官网下载源码,编译很简单:

./configure

make

常用命令:

- 查看视频信息

ffmpeg -i a.avi

- 转成mpegts文件

ffmpeg -i 1.avi -vcodec mpeg4 -f mpegts -qscale 1 1.avi.ts

使用 -qscale 来设置视频质量,否则转换后视频质量会下降。

- 转成udp ts流

ffmpeg -re -i 1.avi -vcodec mpeg4 -f mpegts -qscale 1 udp://localhost:1234

- 转成rtp流

ffmpeg -re -i 1.avi -f rtp -an rtp://localhost:554

- 转成灰度裸视频

ffmpeg -i a.ts -f rawvideo -pix_fmt gray a.gray.ts 

- 转成yuv裸视频

ffmpeg -i a.ts -f rawvideo -pix_fmt uyvy422 a.gray.ts 

- 拼接视频

ffmpeg -i concat:"1.ts|2.ts|3.ts" -vcodec copy merge.ts

使用-vcodec copy参数的话,拼接出来的视频未经过重新编码,可能时间戳会有问题,导致使用ffmpeg对该视频做其他处理时drop frames,所以最好是拼接后重新编码。

- 截取一段视频

ffmpeg -i 1.ts -ss 00:00:00 -t 00:00:10 10_seconds.ts

- 从视频中提取图片

ffmpeg -vcodec rawvideo -f rawvideo -pix_fmt gray -s 720x576 -i sample.ts.gray -f image2 -vcodec bmp %04d.bmp

- 视频添加logo

ffmpeg -i 10.20.ts -vf "movie=../resource/youku_logo.png [logo]; [in][logo] overlay=main_w - overlay_w - 10:10 [out]" -q:v 1 -vcodec mpeg4 10.20.logo.ts

- 转分辨率

ffmpeg -i a.ts -s 720x576 -r 25 -aspect 5:4 b.ts

- 视频裁剪

ffmpeg -i demo.mp4 -filter:v "crop=10:20:100:100" out.mp4

- 视频旋转

ffmpeg -i demo.mp4 -vf "transpose=1" out.mp4

0 = 90CounterCLockwise and Vertical Flip (default)
1 = 90Clockwise
2 = 90CounterClockwise
3 = 90Clockwise and Vertical Flip
For 180 you can use -vf "transpose=2,transpose=2"
原文地址:https://www.cnblogs.com/shengrui/p/3416693.html