ffmpeg 数据处理流程
1.常用查询指令
-version
-demuxers
-muxers
-devices
-codecs
-decoders
-encoders
-bsfs
-formats
-protocols
-filters
-pix_fmts
-sample_fmts
-layouts
-colors
2.录制指令
ffmpeg -f avfoundation -list_devices true -i ""
ffmpeg -f avfoundation -i 0 -r 30 out.yuv
ffplay -s 5120x2880 -pix_fmt uyvy422 out.yuv
ffmpeg -f avfoundation -i :0 out.wav
3.分解/复用指令(转码)
ffmpeg -i in.mp4 -vcodec copy -acodec copy out.flv
ffmpeg -i in.mp4 -vcodec copy -an out.h264
ffmpeg -i in.mp4 -vn -acodec copy out.aac
4.处理原始数据
ffmpeg -i in.mp4 -an -c:v rawvideo -pix_fmt yuv420p out.yuv
ffplay -s 1920x1080 -pix_fmt yuv420p out.yuv
ffmpeg -i in.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm
ffplay -ar 44100 -ac 2 -f s16le out.pcm
5.裁剪与合并指令
ffmpeg -i in.mp4 -ss 00:00:00 -t 10 out.ts
ffmpeg -f concat -i merge.txt merge.flv
txt的内容格式:
file '1.ts'
file '2.ts'
6.图片/视频互转指令
mkdir images && \
ffmpeg -i in.mp4 -r 1 -f image2 ./images/image-%3d.jpeg
ffmpeg -i ./images/image-%3d.jpeg img.mp4
7.推流/拉流指令(直播类)
ffmpeg -re -i in.mp4 -c copy -f flv rtmp://******
ffmpeg -i http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8 -c copy dump.fly
8.滤镜指令
滤镜处理过程
滤镜可以完成的事情:
- 去水印
- 加水印
- 画中画
- 裁剪
- 倍速
- …
ffmpeg -i in.mp4 -vf crop=in_w-100:in_h-100:x=0:y=0 -c:v libx264 -c:a copy out.mp4