[Tools] Display Video processing tool FFmpeg

FFMpeg

FFmpeg is a record that can be used, converting the digital audio, video, and can open it into a computer program stream. Under the LGPL or GPL license. It provides a record, convert and stream audio and complete solution for video. It contains a very advanced audio / video codec library libavcodec, in order to ensure high portability and codec quality, libavcodec in a lot of code developed from scratch.
FFmpeg in the Linux platform, but it also can be compiled to run other operating system environments, including Windows, Mac OS X and so on. The project was first initiated by Fabrice Bellard, between 2004 and 2015 by the Michael Niedermayer is responsible for maintenance. Many FFmpeg developers are from the MPlayer project, and FFmpeg is currently on the server MPlayer project team. The name of the item from the MPEG video coding standard, the front of "FF" representative of "Fast Forward".

FFmpeg multimedia video processing tool has a very powerful features include video capture, video format conversion, video capture, add watermarks to the video.

Common Commands

ffmpeg 命令集举例
1.获取视频的信息
ffmpeg -i video.avi
2.将图片序列合成视频
ffmpeg -f image2 -i image%d.jpg video.mpg
上面的命令会把当前目录下的图片(名字如:image1.jpg. image2.jpg. 等...)合并成video.mpg
3.将视频分解成图片序列
ffmpeg -i video.mpg image%d.jpg
上面的命令会生成image1.jpg. image2.jpg. ...
支持的图片格式有:PGM. PPM. PAM. PGMYUV. JPEG. GIF. PNG. TIFF. SGI
4.为视频重新编码以适合在iPod/iPhone上播放
ffmpeg -i source_video.avi input -acodec aac -ab 128kb -vcodec mpeg4 -b 1200kb -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 320x180 -title X final_video.mp4
说明:
* 源视频:source_video.avi
* 音频编码:aac
* 音频位率:128kb/s
* 视频编码:mpeg4
* 视频位率:1200kb/s
* 视频尺寸:320 X 180
* 生成的视频:final_video.mp4
5.为视频重新编码以适合在PSP上播放
ffmpeg -i source_video.avi -b 300 -s 320x240 -vcodec xvid -ab 32 -ar 24000 -acodec aac final_video.mp4
说明:
* 源视频:source_video.avi
* 音频编码:aac
* 音频位率:32kb/s
* 视频编码:xvid
* 视频位率:1200kb/s
* 视频尺寸:320 X 180
* 生成的视频:final_video.mp4
6.从视频抽出声音.并存为Mp3
ffmpeg -i source_video.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 sound.mp3
说明:
* 源视频:source_video.avi
* 音频位率:192kb/s
* 输出格式:mp3
* 生成的声音:sound.mp3
7.将wav文件转成Mp3
ffmpeg -i son_origine.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 son_final.mp3
8.将.avi视频转成.mpg
ffmpeg -i video_origine.avi video_finale.mpg
9.将.mpg转成.avi
ffmpeg -i video_origine.mpg video_finale.avi
10.将.avi转成gif动画(未压缩)
ffmpeg -i video_origine.avi gif_anime.gif
11.合成视频和音频
ffmpeg -i son.wav -i video_origine.avi video_finale.mpg
12.将.avi转成.flv
ffmpeg -i video_origine.avi -ab 56 -ar 44100 -b 200 -r 15 -s 320x240 -f flv video_finale.flv
13.将.avi转成dv
ffmpeg -i video_origine.avi -s pal -r pal -aspect 4:3 -ar 48000 -ac 2 video_finale.dv
或者:
ffmpeg -i video_origine.avi -target pal-dv video_finale.dv
14.将.avi压缩成divx
ffmpeg -i video_origine.avi -s 320x240 -vcodec msmpeg4v2 video_finale.avi
15.将Ogg Theora压缩成Mpeg dvd
ffmpeg -i film_sortie_cinelerra.ogm -s 720x576 -vcodec mpeg2video -acodec mp3 film_terminate.mpg
16.将.avi压缩成SVCD mpeg2
NTSC格式:
ffmpeg -i video_origine.avi -target ntsc-svcd video_finale.mpg
PAL格式:
ffmpeg -i video_origine.avi -target pal-svcd video_finale.mpg
17.将.avi压缩成VCD mpeg2
NTSC格式:
ffmpeg -i video_origine.avi -target ntsc-vcd video_finale.mpg
PAL格式:
ffmpeg -i video_origine.avi -target pal-vcd video_finale.mpg
18.多通道编码
ffmpeg -i fichierentree -pass 2 -passlogfile ffmpeg2pass fichiersortie-2
19.从flv提取mp3
ffmpeg -i source.flv -ab 128k dest.mp3

Test the sample

提取音频                                                                       
./ffmpeg  -i ~/Downloads/1.mp4  -acodec aac -vn ./newoutput1.aac     
./ffmpeg  -i ~/Downloads/1.mp4  -acodec wav -vn ./newoutput1.wav   

 -i ./testv_out3.mp4  -f wav -ar 16000 ./testv_out3.wav      


mpeg -i ~/Downloads/s.mp4 -f wav -ar 16000 ~/Downloads/newoutput1.wav          
                                                                               
提取视频                                                                       
./ffmpeg  -i ~/Downloads/2.mp4  -vcodec copy -an ~/Downloads/output2.mp4       
                                                                               
视频 音频合成                                                                  
./ffmpeg  -i ~/Downloads/output2.mp4  -i ~/Downloads/test.mp3 -strict -2 -f mp4 ~/Downloads/new2.mp4 
./ffmpeg  -i ~/Downloads/output2.mp4  -i ~/Downloads/output1.aac  -strict -2 -f mp4 ~/Downloads/new22.mp4
                                                                               
                                                                               
pic to video:                                                                  
ffmpeg -f image2 -i /home/.../%05d.png -vcodec libx264 /home/.../yoyoyo.mp4    
                                                                               
video to pic:                                                                  
(yoyopic目录需事先创建好,每秒截取10张图片的频率方式,%05d 图片保存为 00001.png 这样的名称)
ffmpeg -i /home/.../yoyoyo.mp4 -r 10 -f image2 /home/.../yoyopic/%05d.png      
                                                                               
                                                                               
ffmpeg -i ./output2.mp4 -i ./tt.mp4  
-filter_complex "[1:v]scale=w=176:h=144:force_original_aspect_ratio=decrease[ckout];[0:v][ckout]overlay=x=W-w-10:y=0[out]" -map "[out]" -movflags faststart b.mp4

 ffmpeg -i ./output2.mp4 -i ./tt.mp4 
-filter_complex "[1:v]scale=w=176:h=144:force_original_aspect_ratio=decrease[ckout];[0:v][ckout]overlay=x=W-w-10:y=0[out]" -map "[out]" -movflags faststart ~/Desktop/b.mp4


 ffmpeg -i ./output2.mp4 -i ./output2.mp4 -i ./tt.mp4  -i ./tt.mp4 -filter_complex "[0:v]pad=iw*2:ih*2[a];[a][1:v]overlay=w[b];[b][2:v]overlay=0:h[c];[c][3:v]overlay=w:h" .out.mp4


 ffmpeg -i ./output2.mp4 -i ./output2.mp4 -i ./tt.mp4  -i ./tt.mp4 -filter_complex "[0:v]pad=iw*2:ih*2[a];[a][1:v]overlay=w[b];[b][2:v]overlay=0:h[c];[c][3:v]overlay=w:h" .out.mp4


ffmpeg -i out1.mp4 -i out2.mp4 -filter_complex "[0:v]pad=iw*2:ih*1[a];[a][1:v]overlay=w" out.mp4
//pad是将合成的视频宽高,这里iw代表第一个视频的宽,iw*2代表合成后的视频宽度加倍,ih为第一个视频的高,合成的两个视频最好分辨率一致。overlay是覆盖,[a][1:v]overlay=w,后面代表是覆盖位置w:0

ffmpeg -i ./s.mp4 -i ./new_yytu.mp4  -filter_complex "[0:v]pad=iw:ih[a];[1:v]scale=w=400:h=144[ckout];[a][ckout]overlay=30:main_h-overlay_h-30" ./out.mp4


ffmpeg -f image2 -i ./newoutput1/figure_%d.jpg -vcodec libx264 ./yytu.mp4

ffmpeg -i ~/media/test.mp4 -filter_complex "showwavespic=s=720x180" -frames:v 1 ./audio.png

ffmpeg -f concat -i ./filelist.txt  -c copy  ./yytu.mp4


截取视频
ffmpeg -ss 1:05 -i input.mp4 -t 10 -c:v copy -c:a copy output.mp4
ffmpeg -i ./yytu.mp4 -t 10 -c:v copy -c:a copy ./new_yytu.mp4

ffmpeg -i ./testv.mp4 -i ./testv.mp4 -filter_complex "[0:v]pad=iw:ih[a];[1:v]scale=w=400:h=144[ckout];[a][ckout]overlay=100:main_h-overlay_h-100" ./testv_out.mp4

ffmpeg -i ./testv.mp4 -i ./testv.mp4 -filter_complex "[0:v]crop=iw/2:ih,scale=w=iw:h=ih[a];[1:v]scale=w=iw/2:h=ih/2[ckout];[a][ckout]overlay=0:main_h-overlay_h-150" ./testv_out.mp4

合成视频效果1
ffmpeg -i ./testv.mp4 -i ./testv.mp4 -filter_complex "[0:v]scale=w=iw/2:h=ih[a];[1:v]scale=w=iw/2:h=ih/2[ckout];[a][ckout]overlay=0:main_h/4" ./testv_out.mp4

横屏变竖屏
ffmpeg  -i ./bg.png -i ./testv.mp4 -filter_complex "[0:v]scale=w=iw:h=ih[a];[1:v]scale=w=iw:h=ih[ckout];[a][ckout]overlay=0:main_h/4" ./testv_out3.mp4
ffmpeg  -i ./bg.mp4 -i ./testv.mp4 -filter_complex "[0:v]scale=w=iw:h=ih[a];[1:v]scale=w=iw:h=ih[ckout];[a][ckout]overlay=0:main_h/4" ./testv_out3.mp4

Guess you like

Origin www.cnblogs.com/abeen/p/11969009.html