1、提取音频或视频
代码语言:javascript复制ffmpeg -i input_file -vcodec copy -an output_file_video //分离视频流
ffmpeg -i input_file -acodec copy -vn output_file_audio //分离音频流
2、桌面分享推流
代码语言:javascript复制ffmpeg -f avfoundation -i "1" -vcodec libx264 -preset ultrafast -acodec libfaac -f flv rtmp://domain/rtmplive/home
3、推流桌面 麦克风
代码语言:javascript复制ffmpeg -f avfoundation -i "1:0" -vcodec libx264 -preset ultrafast -acodec libmp3lame -ar 44100 -ac 1 -f flv rtmp://domain/rtmplive/home
4、推流桌面 摄像头 麦克风
代码语言:javascript复制ffmpeg -f avfoundation -framerate 30 -i "1:0" -f avfoundation -framerate 30 -video_size 640x480 -i "0" -c:v libx264 -preset ultrafast -filter_complex 'overlay=main_w-overlay_w-10:main_h-overlay_h-10' -acodec libmp3lame -ar 44100 -ac 1 -f flv rtmp://domain/rtmplive/home
5、视频解封装
代码语言:javascript复制ffmpeg –i test.mp4 –vcodec copy –an –f m4v test.264
ffmpeg –i test.avi –vcodec copy –an –f m4v test.264
6、视频转码
代码语言:javascript复制ffmpeg –i test.mp4 –vcodec h264 –s 352*278 –an –f m4v test.264 //转码为码流原始文件
ffmpeg –i test.mp4 –vcodec h264 –bf 0 –g 25 –s 352*278 –an –f m4v test.264 //转码为码流原始文件
ffmpeg –i test.avi -vcodec mpeg4 –vtag xvid –qsame test_xvid.avi //转码为封装文件
-bf B帧数目控制
-g 关键帧间隔控制
-s 分辨率控制
7、视频改封装
代码语言:javascript复制ffmpeg –i video_file.flv –i audio_file –vcodec copy –acodec copy output_file.mp4
8、视频剪切
代码语言:javascript复制ffmpeg –i test.avi –r 1 –f image2 image-=.jpeg //提取图片
ffmpeg -ss 0:1:30 -t 0:0:20 -i input.avi -vcodec copy -acodec copy output.avi //剪切视频
9、直播转录
代码语言:javascript复制ffmpeg –i rtsp://192.168.3.205:5555/test –vcodec copy out.avi
10、播放yuv文件
代码语言:javascript复制ffplay -f rawvideo -video_size 1920x1080 input.yuv
11、双声道合并单声道
代码语言:javascript复制ffmpeg -i music.mp3 -ac 1 music.aac
12、提取两个声道
代码语言:javascript复制-map_channel [input_file_id.stream_specifier.channel_id|-1][?][:output_file_id.stream_specifier]
ffmpeg -i music.mp3 -map_channel 0.0.0 letf.aac -map_channel 0.0.1 right.aac
13、将两个音频源合并为双声道
代码语言:javascript复制 ffmpeg -i left.aac -i right.aac -filter_complex "[0:a][1:a]amerge=inputs=2[aout]" -map "[aout]" output.mka
14、音频音量探测
代码语言:javascript复制 ffmpeg -i test.mp4 -filter_complex volumedetect -c:v copy -f null /dev/null
15、绘制音频波形图 (多声道混合)
代码语言:javascript复制ffmpeg -i music.mp3 -filter_complex "showwavespic=s=640*120" -frames:v 1 output.png
绘制不同声道的波形图
ffmpeg -i 1.mp3 -filter_complex "showwavespic=s=640*240:split_channels=1" -frames:v 1 output.png
16、调整音量
代码语言:javascript复制声音音量应该仔细调整,以保护我们的耳朵和ffmpeg提供2种方法。第一个使用-vol选项,它接受从0到256的整数值,其中256是最大值
ffmpeg -i music.mp3 -vol 30 sound_low.mp3
另一种方法是使用表中描述的卷过滤器:
音量降低到三分之二
ffmpeg -i music.mp3 -af volume=2/3 quiet_music.mp3
增加10分贝的音量
ffmpeg -i music.mp3 -af volume=10dB louder_sound.mp3
17、删除其中一个音频流
代码语言:javascript复制ffmpeg -i gf.mkv -map 0.0 -map 0.2 -vcodec copy -acodec copy out.mkv
18、只保留其中一个声道
代码语言:javascript复制ffmpeg.exe -i xiaoetong.mp4 -map_channel 0.1.0 -c:v copy xiaoetong.single.mp4
19、将声音放大
代码语言:javascript复制ffmpeg -i input.mp3 -vol 400 output.mp3
20、视频转gif
代码语言:javascript复制ffmpeg -i capx.mp4 -t 10 -s 320x240 -pix_fmt rgb24 jidu1.gif
// -t参数表示提取前10秒视频
// -s 表示按照 320x240的像素提取
21、合并视频和字幕
代码语言:javascript复制ffmpeg -i webrtc.mp4 -i webrtc.srt -map 0:v -map 0:a -map 1:s -c:v copy -c:a copy -c:s mov_text webrtc2013.mp4
//mp4不支持srt格式,需要加-c:s mov_text才行,mkv格式则不需要
收集自:
https://www.hack520.com/668.html
https://www.jianshu.com/p/d541b317f71c
https://www.hack520.com/668.html
https://blog.csdn.net/sinat_14826983/article/details/82975561
https://blog.csdn.net/wulong710/article/details/54616624
https://blog.csdn.net/konga/article/details/54561914