FFmpeg是一套可以用來(lái)記錄仓技、轉(zhuǎn)換數(shù)字音頻鸵贬、視頻,并能將其轉(zhuǎn)化為流的開(kāi)源計(jì)算機(jī)程序浑彰。采用LGPL或GPL許可證恭理。它提供了錄制拯辙、轉(zhuǎn)換以及流化音視頻的完整解決方案郭变。
https://github.com/FFmpeg/FFmpeg
http://ffmpeg.org/
FFmpeg命令大概形式如下;
ffmpeg -i input.mp4 output.avi
上面的命令為格式轉(zhuǎn)換(將mp4格式轉(zhuǎn)為avi)
-i filename 輸入文件
更多常用參數(shù)后面羅列,下面記錄一下常用的一些命令:
// 去掉視頻中的音頻
ffmpeg -i input.mp4 -vcodec copy -an output.mp4
// -an: 去掉音頻涯保;-vcodec:視頻選項(xiàng)诉濒,一般后面加copy表示拷貝
// 提取視頻中的音頻
ffmpeg -i input.mp4 -acodec copy -vn output.mp3
// -vn: 去掉視頻;-acodec: 音頻選項(xiàng)夕春, 一般后面加copy表示拷貝
// 音視頻合成
ffmpeg -y –i input.mp4 –i input.mp3 –vcodec copy –acodec copy output.mp4
// -y 覆蓋輸出文件
//剪切視頻
ffmpeg -ss 0:1:30 -t 0:0:20 -i input.mp4 -vcodec copy -acodec copy output.mp4
// -ss 開(kāi)始時(shí)間; -t 持續(xù)時(shí)間
// 視頻截圖
ffmpeg –i test.mp4 –f image2 -t 0.001 -s 320x240 image-%3d.jpg
// -s 設(shè)置分辨率; -f 強(qiáng)迫采用格式fmt;
// 視頻分解為圖片
ffmpeg –i test.mp4 –r 1 –f image2 image-%3d.jpg
// -r 指定截屏頻率
// 將圖片合成視頻
ffmpeg -f image2 -i image%d.jpg output.mp4
//視頻拼接
ffmpeg -f concat -i filelist.txt -c copy output.mp4
// 將視頻轉(zhuǎn)為gif
ffmpeg -i input.mp4 -ss 0:0:30 -t 10 -s 320x240 -pix_fmt rgb24 output.gif
// -pix_fmt 指定編碼
// 將視頻前30幀轉(zhuǎn)為gif
ffmpeg -i input.mp4 -vframes 30 -f gif output.gif
// 旋轉(zhuǎn)視頻
ffmpeg -i input.mp4 -vf rotate=PI/2 output.mp4
// 縮放視頻
ffmpeg -i input.mp4 -vf scale=iw/2:-1 output.mp4
// iw 是輸入的寬度未荒, iw/2就是一半;-1 為保持寬高比
//視頻變速
ffmpeg -i input.mp4 -filter:v setpts=0.5*PTS output.mp4
//音頻變速
ffmpeg -i input.mp3 -filter:a atempo=2.0 output.mp3
//音視頻同時(shí)變速,但是音視頻為互倒關(guān)系
ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mp4
// 視頻添加水印
ffmpeg -i input.mp4 -i logo.jpg -filter_complex [0:v][1:v]overlay=main_w-overlay_w-10:main_h-overlay_h-10[out] -map [out] -map 0:a -codec:a copy output.mp4
// main_w-overlay_w-10 視頻的寬度-水印的寬度-水印邊距及志;
// 截取視頻局部
ffmpeg -i in.mp4 -filter:v "crop=out_w:out_h:x:y" out.mp4
// 截取部分視頻片排,從[80,60]的位置開(kāi)始寨腔,截取寬200,高100的視頻
ffmpeg -i in.mp4 -filter:v "crop=80:60:200:100" -c:a copy out.mp4
// 截取右下角的四分之一
ffmpeg -i in.mp4 -filter:v "crop=in_w/2:in_h/2:in_w/2:in_h/2" -c:a copy out.mp4
// 截去底部40像素高度
ffmpeg -i in.mp4 -filter:v "crop=in_w:in_h-40" -c:a copy out.mp4
參數(shù)說(shuō)明:
-vcodec xvid 使用xvid壓縮
-s 320x240 指定分辨率
-r fps 設(shè)置幀頻 缺省25
-b <比特率> 指定壓縮比特
-acodec aac 設(shè)定聲音編碼
-ac <數(shù)值> 設(shè)定聲道數(shù)率寡,1就是單聲道迫卢,2就是立體聲
-ar <采樣率> 設(shè)定聲音采樣率,PSP只認(rèn)24000
-ab <比特率> 設(shè)定聲音比特率
-vol <百分比> 設(shè)定音量
-y(覆蓋輸出文件
-t duration 設(shè)置紀(jì)錄時(shí)間 hh:mm:ss[.xxx]格式的記錄時(shí)間也支持
-ss position 搜索到指定的時(shí)間 [-]hh:mm:ss[.xxx]的格式也支持
-title string 設(shè)置標(biāo)題
-author string 設(shè)置作者
-copyright string 設(shè)置版權(quán)
-hq 激活高質(zhì)量設(shè)置
-aspect aspect 設(shè)置橫縱比 4:3 16:9 或 1.3333 1.7777
-croptop size 設(shè)置頂部切除帶大小 像素單位
-cropbottom size -cropleft size -cropright size
-padtop size 設(shè)置頂部補(bǔ)齊的大小 像素單位
-padbottom size -padleft size -padright size -padcolor color 設(shè)置補(bǔ)齊條顏色(hex,6個(gè)16進(jìn)制的數(shù)冶共,紅:綠:蘭排列乾蛤,比如 000000代表黑色)
-bt tolerance 設(shè)置視頻碼率容忍度kbit/s
-maxrate bitrate設(shè)置最大視頻碼率容忍度
-minrate bitreate 設(shè)置最小視頻碼率容忍度
-bufsize size 設(shè)置碼率控制緩沖區(qū)大小
-vcodec codec 強(qiáng)制使用codec編解碼方式。 如果用copy表示原始編解碼數(shù)據(jù)必須被拷貝捅僵。
-sameq 使用同樣視頻質(zhì)量作為源(VBR)
-pass n 選擇處理遍數(shù)(1或者2)家卖。兩遍編碼非常有用。第一遍生成統(tǒng)計(jì)信息庙楚,第二遍生成精確的請(qǐng)求的碼率
-passlogfile file 選擇兩遍的紀(jì)錄文件名為file
-map file:stream 設(shè)置輸入流映射
-debug 打印特定調(diào)試信息
http://www.tuicool.com/articles/nquMZv
CodeBlog是我做的一個(gè)編程技術(shù)學(xué)習(xí)客戶(hù)端上荡,集成了很多技術(shù)網(wǎng)站上的博客,應(yīng)用寶詳情頁(yè)