本文只列出自己工作中所使用到的視頻處理相關(guān)指令即彪,若想更全面的了解席吴,可查詢官網(wǎng):http://ffmpeg.org/ffmpeg-all.html
1溅漾、視頻分割
????1)快速分割扩淀,但分割時間不準(zhǔn)確
? ??????ffmpeg -ss $beginTime -t $lengthTime -accurate_seek -i $srcFileName -codec copy -avoid_negative_ts 1 $dstFileName
? ? 2)準(zhǔn)確分割,但因分割時需要編解碼蔫敲,導(dǎo)致分割速度慢
? ??????ffmpeg -ss $beginTime -t $lengthTime -i $srcFileName -c:v libx264 -c:a aac -strict experimental -b:a 98k $dstFileName
其中:$beginTime——分割起始時間; $lengthTime——分割視頻時間長度饲嗽;$srcFileName——原始視頻文件;$dstFileName——分割生成的目標(biāo)視頻文件名
2奈嘿、視頻拼接
? ??ffmpeg -f concat -safe 0 -i $srcFileList -c copy $dstFileName > /dev/null 2>&1
其中:$srcFileList——需要拼接的原始視頻文件列表喝噪;$dstFileName——拼接生成的目標(biāo)視頻文件
3、hls視頻流轉(zhuǎn)換為mp4文件
? ? ffmpeg -i $hlsHttpAddr -c copy $dstFileName
其中: $hlsHttpAddr——hls視頻流對應(yīng)的http地址指么; $dstFileName——目標(biāo)視頻文件
4、視頻文件轉(zhuǎn)換生成音頻文件
? ? ffmpeg -i $srcFileName -f wav -ar 16000 -ac 1 $dstFileName
其中:$srcFileName——原始視頻文件榴鼎; $dstFileName——生成的音頻文件伯诬;且生成的音頻為單通道
5、給視頻添加一個不同顏色大小的背景畫布
? ? 1) 先生成一個純色的視頻文件巫财,再將原始視頻疊加至純色的視頻上
? ??????ffmpeg -filter_complex 'color=c=red' -t 5 out.mkv
? ??????ffmpeg -i main.mp4 -vf 'movie=effect.mp4 [f];[in][f] overlay=0:0 [out]' out.mp4
? ? 2)直接疊加視頻于純色畫布上
? ??ffmpeg -f lavfi -t 80 -i color=c=red:s=1920x1080 -i SHXERD100805.mp4 -filter_complex "overlay[out]" -map "[out]" output_backgroud.mkv
其中:-t為指定生成視頻文件的時長盗似,若不指定則生成視頻時長會一直累加,直到退出程序平项,因而需提前計算出疊加視頻的時間赫舒,計算視頻時長可使用如下命令:
? ??ffmpeg -i $srcFileName 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//
6、在視頻上疊加圖片闽瓢,可一次性疊加多個圖片
? ??ffmpeg -i input.mp4 -i image1.png -i image2.jpg -filter_complex 'overlay=x=W-w:y=H-h,overlay=x=0:y=0' output.mp4
7接癌、在視頻上疊加文字
? ??ffmpeg -i input.mp4 -vf "drawtext=fontfile=simhei.ttf: text='my video':x=10:y=10:fontsize=24:fontcolor=white:shadowy=2" output.mp4
如果需要在一條命令中添加多個文字,可參考如下命令:
ffmpeg -i input.mp4 -vf "drawtext=fontfile='msyh.ttf':text='my video':x=20:y=20:fontsize=40:fontcolor=black@0.2,drawtext=fontfile='msyh.ttf':text='我的視頻':x=100:y=100:fontsize=40:fontcolor=black@0.8" output.mp4 -y