日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

java使用FFmpeg合成視頻和音頻并獲取視頻中的音頻等操作(實例代碼詳解)

瀏覽:297日期:2022-09-05 09:06:38

FFmpeg是一套可以用來記錄、轉換數字音頻、視頻,并能將其轉化為流的開源計算機程序。

ffmpeg命令參數如下:

java使用FFmpeg合成視頻和音頻并獲取視頻中的音頻等操作(實例代碼詳解)

通用選項

-L license-h 幫助-fromats 顯示可用的格式,編解碼的,協議的。。。-f fmt 強迫采用格式fmt-I filename 輸入文件-y 覆蓋輸出文件-t duration 設置紀錄時間 hh:mm:ss[.xxx]格式的記錄時間也支持-ss position 搜索到指定的時間 [-]hh:mm:ss[.xxx]的格式也支持-title string 設置標題-author string 設置作者-copyright string 設置版權-comment string 設置評論-target type 設置目標文件類型(vcd,svcd,dvd) 所有的格式選項(比特率,編解碼以及緩沖區大小)自動設置 ,只需要輸入如下的就可以了:ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg-hq 激活高質量設置-itsoffset offset 設置以秒為基準的時間偏移,該選項影響所有后面的輸入文件。該偏移被加到輸入文件的時戳,定義一個正偏移意味著相應的流被延遲了 offset秒。 [-]hh:mm:ss[.xxx]的格式也支持

視頻選項

-b bitrate 設置比特率,缺省200kb/s-r fps 設置幀頻 缺省25-s size 設置幀大小 格式為WXH 缺省160X128.下面的簡寫也可以直接使用:Sqcif 128X96 qcif 176X144 cif 252X288 4cif 704X576-aspect aspect 設置橫縱比 4:3 16:9 或 1.3333 1.7777-croptop size 設置頂部切除帶大小 像素單位-cropbottom size ?cropleft size ?cropright size-padtop size 設置頂部補齊的大小 像素單位-padbottom size ?padleft size ?padright size ?padcolor color 設置補齊條顏色(hex,6個16進制的數,紅:綠:蘭排列,比如 000000代表黑色)-vn 不做視頻記錄-bt tolerance 設置視頻碼率容忍度kbit/s-maxrate bitrate設置最大視頻碼率容忍度-minrate bitreate 設置最小視頻碼率容忍度-bufsize size 設置碼率控制緩沖區大小-vcodec codec 強制使用codec編解碼方式。 如果用copy表示原始編解碼數據必須被拷貝。-sameq 使用同樣視頻質量作為源(VBR)-pass n 選擇處理遍數(1或者2)。兩遍編碼非常有用。第一遍生成統計信息,第二遍生成精確的請求的碼率-passlogfile file 選擇兩遍的紀錄文件名為file

高級選項

-g gop_size 設置圖像組大小-intra 僅適用幀內編碼-qscale q 使用固定的視頻量化標度(VBR)-qmin q 最小視頻量化標度(VBR)-qmax q 最大視頻量化標度(VBR)-qdiff q 量化標度間最大偏差 (VBR)-qblur blur 視頻量化標度柔化(VBR)-qcomp compression 視頻量化標度壓縮(VBR)-rc_init_cplx complexity 一遍編碼的初始復雜度-b_qfactor factor 在p和b幀間的qp因子-i_qfactor factor 在p和i幀間的qp因子-b_qoffset offset 在p和b幀間的qp偏差-i_qoffset offset 在p和i幀間的qp偏差-rc_eq equation 設置碼率控制方程 默認tex^qComp-rc_override override 特定間隔下的速率控制重載-me method 設置運動估計的方法 可用方法有 zero phods log x1 epzs(缺省) full-dct_algo algo 設置dct的算法 可用的有 0 FF_DCT_AUTO 缺省的DCT 1 FF_DCT_FASTINT 2 FF_DCT_INT 3 FF_DCT_MMX 4 FF_DCT_MLIB 5 FF_DCT_ALTIVEC-idct_algo algo 設置idct算法。可用的有 0 FF_IDCT_AUTO 缺省的IDCT 1 FF_IDCT_INT 2 FF_IDCT_SIMPLE 3 FF_IDCT_SIMPLEMMX 4 FF_IDCT_LIBMPEG2MMX 5 FF_IDCT_PS2 6 FF_IDCT_MLIB 7 FF_IDCT_ARM 8 FF_IDCT_ALTIVEC 9 FF_IDCT_SH4 10 FF_IDCT_SIMPLEARM-er n 設置錯誤殘留為n 1 FF_ER_CAREFULL 缺省 2 FF_ER_COMPLIANT 3 FF_ER_AGGRESSIVE 4 FF_ER_VERY_AGGRESSIVE-ec bit_mask 設置錯誤掩蔽為bit_mask,該值為如下值的位掩碼 1 FF_EC_GUESS_MVS (default=enabled) 2 FF_EC_DEBLOCK (default=enabled)-bf frames 使用frames B 幀,支持mpeg1,mpeg2,mpeg4-mbd mode 宏塊決策 0 FF_MB_DECISION_SIMPLE 使用mb_cmp 1 FF_MB_DECISION_BITS 2 FF_MB_DECISION_RD-4mv 使用4個運動矢量 僅用于mpeg4-part 使用數據劃分 僅用于mpeg4-bug param 繞過沒有被自動監測到編碼器的問題-strict strictness 跟標準的嚴格性-aic 使能高級幀內編碼 h263+-umv 使能無限運動矢量 h263+-deinterlace 不采用交織方法-interlace 強迫交織法編碼 僅對mpeg2和mpeg4有效。當你的輸入是交織的并且你想要保持交織以最小圖像損失的時候采用該選項。可選的方法是不交織,但是損失更大-psnr 計算壓縮幀的psnr-vstats 輸出視頻編碼統計到vstats_hhmmss.log-vhook module 插入視頻處理模塊 module 包括了模塊名和參數,用空格分開

音頻選項

-ab bitrate 設置音頻碼率-ar freq 設置音頻采樣率-ac channels 設置通道 缺省為1-an 不使能音頻紀錄-acodec codec 使用codec編解碼

音視頻捕獲選項

-vd device 設置視頻捕獲設備。比如/dev/video0-vc channel 設置視頻捕獲通道 DV1394專用-tvstd standard 設置電視標準 NTSC PAL(SECAM)-dv1394 設置DV1394捕獲-av device 設置音頻設備 比如/dev/dsp

高級選項

-map file:stream 設置輸入流映射-debug 打印特定調試信息-benchmark 為基準測試加入時間-hex 傾倒每一個輸入包-bitexact 僅使用位精確算法 用于編解碼測試-ps size 設置包大小,以bits為單位-re 以本地幀頻讀數據,主要用于模擬捕獲設備-loop 循環輸入流。只工作于圖像流,用于ffserver測試

橫向合并視頻

ffmpeg -i input1.mp4 -i input2.mp4 -lavfi hstack output.mp4

上面的命令雖然可以合并視頻,兩個視頻可以正常播放,但是只保留了前面一個的音頻。

下面會介紹怎么避開這個坑。

注意這時候input1和input2必須同樣的高度,如果不一樣的高度可以使用-shortest參數來保證同樣的高度。

如果希望合并多個視頻,可以使用下面命令行。

ffmpeg -i input1.mp4 -i input2.mp4 -i input3.mp4 -lavfi hstack=inputs=3 output.mp4

其中input=3表示希望合并的視頻的個數

縱向合并視頻

ffmpeg -i input1.mp4 -i input2.mp4 -lavfi vstack output.mp4

網格合并視頻

當多個視頻時,還可以合并成網格狀,比如2x2,3x3這種。但是視頻個數不一定需要是偶數,如果是奇數,可以用黑色圖片來占位。

ffmpeg -f lavfi -i color=c=black:s=1280x720 -vframes 1 black.png

該命令將創建一張1280*720的圖片

然后就可以使用下面這個命令來合并成網格視頻了,如果只有三個視頻,可以選擇上面創建的黑色圖片替代。

ffmpeg -i top_left.mp4 -i top_right.mp4 -i bottom_left.mp4 -i bottom_right.mp4 -lavfi '[0:v][1:v]hstack[top];[2:v][3:v]hstack[bottom];[top][bottom]vstack'-shortest 2by2grid.mp4

上面創建的是正規的2x2網格視頻。想象一下,現在只有三個視頻,我想把第一個視頻擺放在第一行的中間,然后把第二、三個視頻擺放在第二行。那么就可以使用下面兩個命令了。

ffmpeg -f lavfi -i color=c=black:s=640x720 -vframes 1 black.pngffmpeg -i black.png -i top_center.mp4 -i bottom_left.mp4 -i bottom_right.mp4-lavfi '[0:v][1:v][0:v]hstack=inputs=3[top];[2:v][3:v]hstack[bottom];[top][bottom]vstack'-shortest 3_videos_2x2_grid.mp4

合并音頻和視頻

ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -strict experimental output.mp4

如果視頻中已經包含了音頻,這個時候還可以替換視頻中的音頻,使用下面命令行。

ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -strict experimental-map 0:v:0 -map 1:a:0 output.mp4

合并兩個音頻

ffmpeg -i input1.mp3 -i input2.mp3 -filter_complex amerge -ac 2 -c:a libmp3lame -q:a 4 output.mp3

獲取視頻中的音頻

ffmpeg -i input.mp4 -vn -y -acodec copy output.m4a

去掉視頻中的音頻

ffmpeg -i input.mp4 -an output.mp4

現在介紹,怎么合并兩個視頻并保留兩個視頻中的音頻。也就是抖音中的合拍功能。1.合并兩個視頻,但是發現只有一個聲音。無所謂。2.抽取兩個視頻中的音頻,然后合并成一個音頻。3.將這個音頻替換到之前的合并視頻中。4.ok了。5.可以使用ffplay播放了。

附上java代碼,可直接使用。使用前需要先將FFmpeg的bin目錄配置在環境變量中。配置完成后,在cmd中拼 ffmpeg -version

如果能ping通說明配置成功,然后直接使用以下代碼即可成功。

package com.util; import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;import java.util.UUID; /** * 視頻中獲取音頻文件 */public class VideoUtils { //FFmpeg全路徑 private static final String FFMPEG_PATH = 'D:666ffmpeg-20190730-a0c1970-win64-staticbinffmpeg.exe'; //音頻保存路徑 private static final String TMP_PATH = 'D:666'; /** * 從視頻中提取音頻信息 * @param videoUrl * @return */ public static String videoToAudio(String videoUrl){ String aacFile = ''; try { aacFile = TMP_PATH + '/' + new SimpleDateFormat('yyyyMMddHHmmss').format(new Date()) + UUID.randomUUID().toString().replaceAll('-', '') + '.mp3'; String command = FFMPEG_PATH + ' -i '+ videoUrl + ' -vn -acodec copy '+ aacFile; System.out.println('video to audio command : ' + command); Process process = Runtime.getRuntime().exec(command); process.waitFor(); } catch (Exception e) { e.printStackTrace(); } return ''; } public static void main(String[] args){ try {// videoToAudio('D:laji2.mp4'); String videoInputPath = 'D:lajiaa.mp4'; String audioInputPath = 'D:lajia.mp3'; String videoOutPath = 'D:lajibb1.avi'; convetor(videoInputPath,audioInputPath,videoOutPath); } catch (Exception e) { e.printStackTrace(); } System.out.println('---------獲取音頻文件成功!-----------'); } /** * @param videoInputPath 原視頻的全路徑 * @param audioInputPath 音頻的全路徑 * @param videoOutPath 視頻與音頻結合之后的視頻的路徑 * @throws Exception */ public static void convetor(String videoInputPath, String audioInputPath, String videoOutPath) throws Exception { Process process = null; try { String command =FFMPEG_PATH + ' -i ' + videoInputPath + ' -i ' + audioInputPath + ' -c:v copy -c:a aac -strict experimental ' + ' -map 0:v:0 -map 1:a:0 ' + ' -y ' + videoOutPath; process = Runtime.getRuntime().exec(command); process.waitFor(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // 使用這種方式會在瞬間大量消耗CPU和內存等系統資源,所以這里我們需要對流進行處理 InputStream errorStream = process.getErrorStream(); InputStreamReader inputStreamReader = new InputStreamReader(errorStream); BufferedReader br = new BufferedReader(inputStreamReader); String line = ''; while ((line = br.readLine()) != null) { } if (br != null) { br.close(); } if (inputStreamReader != null) { inputStreamReader.close(); } if (errorStream != null) { errorStream.close(); } } }

總結

到此這篇關于java使用FFmpeg合成視頻和音頻并獲取視頻中的音頻等操作(實例代碼詳解)的文章就介紹到這了,更多相關java使用FFmpeg合成視頻和音頻內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
蜜桃视频在线网站| 欧美国产专区| 水蜜桃精品av一区二区| 日韩国产欧美在线播放| 蜜桃视频一区二区| 亚洲男女自偷自拍| 国产一区白浆| 丝袜美腿亚洲一区二区图片| 久久国产影院| 激情综合自拍| 红桃视频国产精品| 夜久久久久久| 日韩欧美一区二区三区在线观看| 国产传媒av在线| 激情黄产视频在线免费观看| 精品久久在线| av中文字幕在线观看第一页| 国产精品亚洲一区二区三区在线观看| 国产一区二区三区视频在线| 国产在线观看91一区二区三区 | 国产99精品一区| 成人国产精品一区二区免费麻豆| 国产一区2区| 欧美久久天堂| 日韩毛片在线| 国产高清一区| 蜜臀久久99精品久久久久久9| 亚洲精品第一| 国产精品视频一区二区三区四蜜臂| 国产精品一二| 久久久久久自在自线| 日韩在线第七页| 欧美jjzz| 中文字幕亚洲精品乱码| 青青伊人久久| 九九99久久精品在免费线bt| 韩国女主播一区二区三区| 国产一区2区| 99视频精品视频高清免费| 亚洲专区在线| 国产亚洲精aa在线看 | 欧美日韩一区二区三区四区在线观看 | 91亚洲国产成人久久精品| 国产麻豆久久| 免费日韩视频| 国产精品欧美在线观看| 97视频热人人精品免费| 自由日本语亚洲人高潮| 日本综合精品一区| 久久久国产精品入口麻豆| 亚洲伦乱视频| 亚洲免费资源| 97人人精品| 国产毛片久久| 日本欧美一区| 久久国产毛片| 国产日本精品| 婷婷丁香综合| 国产激情一区| 日韩视频一区| 久久免费视频66| 夜夜嗨av一区二区三区网站四季av| 青青青国产精品| 成人日韩在线观看| 欧美一级二级视频| 久久国产影院| 久久激情综合网| 影视先锋久久| 国产另类在线| 欧美日韩一区二区综合| 欧美专区一区| 精品欧美久久| 久久这里只有| 亚洲免费毛片| 99久久99视频只有精品| 久久精品72免费观看| 99riav国产精品| 红杏一区二区三区| 日韩综合小视频| 国产精品99免费看| 91亚洲国产成人久久精品| 日韩福利视频一区| 日韩午夜av| 福利视频一区| 日韩国产精品久久久久久亚洲| 亚洲成人二区| 精品国产中文字幕第一页| 蜜桃久久av一区| 99国产精品免费视频观看| 国产精品成人国产| 综合色就爱涩涩涩综合婷婷| 欧美一区三区| 国产精品成久久久久| 日韩精品一区二区三区中文在线| 亚洲福利久久| 91综合网人人| 亚洲国产成人精品女人| 国产精品调教| 国产日韩欧美三区| 奇米777国产一区国产二区| 婷婷综合一区| 日韩欧美中文| 亚洲欧洲专区| 老牛国产精品一区的观看方式| 欧美日韩在线播放视频| 岛国av在线网站| 久久中文欧美| 国产精品国码视频| 日本va欧美va精品| 亚洲bt欧美bt精品777| 国产精品日韩欧美一区| 国产一区日韩欧美| 日韩不卡视频在线观看| 国产成人精品999在线观看| 日韩精品欧美成人高清一区二区| 天堂成人国产精品一区| 亚洲激情婷婷| 欧美在线观看视频一区| 欧洲av不卡| 亚洲国产成人二区| 成人精品国产亚洲| а√天堂8资源在线| 国产成人免费视频网站视频社区| 麻豆精品在线观看| 麻豆久久一区| 精品一区二区男人吃奶| 久久99久久久精品欧美| 国产精品sm| 亚洲精品一级二级| 亚洲福利久久| 色8久久久久| 免费在线日韩av| 亚洲综合电影| 国产亚洲激情| 久久国产日韩欧美精品| 日本黄色精品| 亚洲激情黄色| 91精品国产一区二区在线观看 | 日韩精品一二三| 91亚洲精品视频在线观看| 久久xxx视频| 韩国久久久久久| 亚洲专区欧美专区| 国产精品成人一区二区网站软件| 日韩免费福利视频| 亚洲精品大片| 久久精品超碰| 精品久久99| 日韩在线不卡| 伊人影院久久| 日韩欧美高清一区二区三区| 欧美另类中文字幕| 久久字幕精品一区| 午夜av成人| 中文国产一区| 亚洲欧洲日韩精品在线| 亚洲欧美专区| 国产高清亚洲| 欧美aa在线观看| 在线一区视频| 国产欧美二区| 日韩视频网站在线观看| 日韩视频免费| 日韩欧美2区| 国产成人调教视频在线观看| 在线日韩欧美| 四虎精品永久免费| 久久亚洲道色| 午夜国产一区二区| 亚洲免费福利一区| 精品无人区麻豆乱码久久久| 99久久久久久中文字幕一区| 国产精品毛片| 国产精品亚洲产品| 亚洲一区二区毛片| 老司机免费视频一区二区| 日韩专区一卡二卡| 成人精品国产亚洲| 日韩欧美中文在线观看| 999精品色在线播放| 欧美精品三级在线| 久久成人亚洲| 日韩综合精品| 久久爱www成人| 亚洲精品无播放器在线播放| 日韩精品一区二区三区免费观影| 91精品在线免费视频| 四虎884aa成人精品最新| 91精品啪在线观看国产爱臀| 婷婷丁香综合| 岛国av在线网站| 国产日韩视频| 石原莉奈在线亚洲二区| 日韩一区二区三区在线免费观看| 国产一卡不卡| 婷婷成人av| 成人精品动漫一区二区三区| 日韩专区欧美专区| 水蜜桃久久夜色精品一区| 亚洲aa在线|