ffmpeg 常用命令存档

2022-02-11 19:45:11 浏览数 (1)

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

0 人点赞