1.基本信息查询命令
示例
1
|
ffmpeg -version //查看版本 |
2.录制命令
先查看设备支持情况
1 2 3 4 5 6 7 8 9
ffmpeg -devices //查看设备支持情况 =========================================== Devices: D. = Demuxing supported .E = Muxing supported -- D avfoundation AVFoundation input device D lavfi Libavfilter virtual input device E sdl,sdl2 SDL2 output device
查看输入源
1 2 3 4 5 6 7
ffmpeg -f avfoundation -list_devices true -i "" //查看输入源 ========================================================== AVFoundation video devices: [0] FaceTime HD Camera [1] Capture screen 0 AVFoundation audio devices: [0] Built-in Microphone
从上边输出信息知道,视频的设备分为 Camera和桌面;音频输入为麦克风
录制
1 2 3 4 5
ffmpeg -f avfoundation -i 1 -r 30 ~/Desktop/demo.yuv ------------------------------------------------------------- -f :指定设备来源 -i :指定设备中的输入端来源 -r :指定帧率
播放
1 2 3 4 5
ffplay -video_size 3360x2100 -pix_fmt uyvy422 ~/Desktop/demo.yuv ---------------------------------------------------------------- -video_size :播放yuv需要指定视频大小 -pix_fmt :指定存储格式 (以上两者在录制时都会有信息输出,可以直接复用)
3. 分解与复用
1 2 3 4 5 6 7 |
ffmpeg -i ~/Desktop/demo.mp4 -vcodec copy -acodec copy ~/Desktop/out.flv ------------------------------------------------------------------------ -i :输入文件 -vcodec :视频编码方式 填写copy代表保持不变; 使用-vn表示不要视频 -acodec :音频编码方式 填写copy代表保持不变; 使用-an表示不要音频 |
只要音频不要视频,保留格式为音频格式 AAC
1
|
ffmpeg -i ~/Desktop/demo.mp4 -vn -acodec copy ~/Desktop/out.acc |
只要视频不要音频,保留格式为视频格式 h264
1
|
ffmpeg -i ~/Desktop/demo.mp4 -vcodec copy -an ~/Desktop/out.h264 |
4. 处理原始数据
提取原始音频数据
1 2 3 4 5 6 7 |
ffmpeg -i ~/Desktop/ffmpeg_test.mp4 -vn -ar 44100 -ac 2 -f s16le ~/Desktop/out.pcm ----------------------------------------------------------------------------------- -i :输入文件 -vn :去掉视频 -ar :采样率 -ac :声道数 -f :存储数据格式 s16le ---> 16位小端存储 |
播放
1
|
ffplay -ar 44100 -ac 2 -f s16le ~/Desktop/out.pcm |
5.滤镜命令
改变视频大小
1 2 3 4 5 6 7 |
ffmpeg -i ~/Desktop/ffmpeg_test.mp4 -vf crop=in_w-200:in_h-100 -c:v libx264 -c:a copy ~/Desktop/out_crop.mp4 ------------------------------------------------------------------------------------------------------------ -i :输入文件 -vf :视频滤镜 crop :裁剪 -c:v :视频编码 -c:a :音频编码 |
6.裁剪与合并
裁剪
1 2 3 4 5 6 |
ffmpeg -i ~/Desktop/ffmpeg_test.mp4 -ss 00:00:44 -to 00:00:50 ~/Desktop/fenpian.ts ------------------------------------------------------------------------------------ -ss :表示从某个位置开始截取 -to :表示到某个位置结束 -t :表示从-ss 的位置开始持续多少秒结束,这个和 -to参数分开使用 |
拼接
1 2 3 4 5 6 7 8 |
ffmpeg -f concat -i ~/Desktop/input.txt ~/Desktop/concat.mp4 --------------------------------------------------------- -f :使用功能 这里concat表示拼接 -i :表示拼接清单 =====> input.txt内容如下 file 'fenpian1.ts' file 'fenpian2.ts' |
7.图片与视频互转
视频转图片
1 2 3 4 |
ffmpeg -i ./ffmpeg_test_two.mp4 -r 1 -f image2 ./ffmpeg_img/image-%3d.jpeg -------------------------------------------------------------------------- -r :帧数间隔,用于指定几帧取一副图 -f :指定图片格式 |
图片转视频
1
|
ffmpeg -i ./ffmpeg_img/image-%3d.jpeg ./img_mp4.mp4 |
8.直播
推流
1
|
ffmpeg -re -i out.mp4 -copy -f flv rtmp://server/live/streamNmae |
拉流
1
|
ffmpeg -i rtmp://58.200.131.2:1935/livetv/hunantv -c copy dump.flv |