在实际工作中,通常需要ffmpeg作为工具来验证一个问题,比如播放一个视频,提取一个码流,转码视频,转封格式等,用的时候才发现忘记了相关命令,Google一番花老大的力气才找到自己需要的命令行。本文总结常用的命令,并演示如何通过命令行的help用法去构建新的命令。
常用命令总结
- 采集命令
列出摄像头设备
ffmpeg -list_devices true -f dshow -i dummy
列出某一个摄像头的能力
ffmpeg -list_options true -f dshow -i video=“Integrated Camera”
指定格式播放某一个设备
ffplay -video_size 640x480 -pixel_format yuyv422 -framerate "30" -f dshow -i video="Integrated Camera"
录屏命令
ffmpeg -y -f gdigrab -t 30 -r 25 -i desktop -vcodec libx264 -s 1280x720 test720.mp4
详见:https://www.jianshu.com/p/601757bd053b
- 提取视频或音频裸流
ffmpeg.exe -i CCTV-2-dszg-1.mp4 -vn -y -acodec copy audio.aac //提取音频
ffmpeg.exe -i CCTV-2-dszg-1.mp4 -an -y -acodec copy video.h264 //提取视频
- 转码和转封
ffmpeg -i test_1920x1080.mp4 -acodec copy -vcodec libx264 -s 1280x720 test_1280x720.ts
- 播放
播放编码后或封装后的数据
ffplay –x 800 –y 400 test.mp4 –autoexit
强制某个解码器解码
ffplay -vcodec h264_qsv -i test.h264
播放原始数据
查看格式
ffplay -pix_fmts
播放RGB
ffplay -x 800 -y 400 -pixel_format bgra -video_size 1366x768 -i rgb24_320x240.rgb
播放YUV
ffplay -x 800 -y 400 -pixel_format yuv420p -video_size 1366x768 -i capture.yuv
播放PCM
ffplay -ar 48000 -ac 2 -f f32le 48000_2_f32le.pcm
播放网络流
ffplay –x 800 –y 400 url
- 提取原始数据
提取YUV
ffmpeg -i test_1280x720.mp4 -t 3 -pix_fmt yuv420p yuv420p_orig.yuv
提取RGB
ffmpeg -i test.mp4 -t 3 -pix_fmt rgb24 -s 320x240 rgb24_320x240.rgb
提取PCM
ffmpeg -i test.mp4 -t 10 -vn -ar 48000 -ac 2 -f f32le 48000_2_f32le_2.pcm
help 查询
1基本的help查询,可以重定向文件再查看
ffmpeg/ffplay/ffprobe –h
ffmpeg -h long
ffmpeg -h full
2.查看某个一个类型的
如查看支持编解码器
ffmpeg -codecs
查看所支持的复用器
ffmpeg -muxers等
3.查看具体类型所支持的参数
基本格式:ffmpeg -h type=xxx
举例如下:
ffmpeg -h encoder=libx264
ffmpeg -h filter=atempo
后续在工作和学习中如遇到新的需求,该命令行会继续扩充。