2016-05-13 56 views
1

我正在嘗試使用FFMPEG做一個「剖面圖」(更改攝像機角度)。我有來自左側相機和右側相機的HLS視頻。開始時間有點不同步,因此在右側視頻開始錄製後,左側視頻實際上開始錄製4.21秒。我試圖展示從開始到5秒標記的正確視頻,然後從0.79秒標記切換到左側視頻直到5.79秒標記(這將是右側相機上的5-10秒範圍)。如何使用FFMPEG進行音頻交叉淡入淡出處理?

我意識到這些切割可能落在p-幀 - 這是這裏的測試的一部分。我想看看FFMPEG是否會正確插入必要的i幀來平滑切割。

最後,爲了獲得平滑的最終產品,我試圖在轉換過程中進行1秒的音頻交叉淡入淡出(不需要任何視頻淡入淡出)。

我是FFMPEG的新手。我嘗試了以下,但它沒有奏效。任何人都知道什麼是正確的命令?

ffmpeg -i right.m3u8 -ss 0 -t 5 -i left.m3u8 -ss 0.79 -t 5 -async 1 -filter_complex acrossfade=d=1:c1=exp:c2=exp mixed.m3u8 

回答

0

明白了它與Mulvya的答案几個小調整工作。您需要爲第二個文件指定一個setset以確保它從-0.5秒開始(-22050個採樣)。此外,我需要擺脫這些曲線,並讓它在麻煩的一面做線性曲線,以便通過轉換來保持恆定的音量。

ffmpeg -i right.m3u8 -i left.m3u8 -filter_complex 
    "[0]trim=duration=5,setpts=PTS-STARTPTS[vr]; 
    [1]trim=0.79:duration=5,setpts=PTS-STARTPTS[vl]; 
    [0]atrim=duration=5.5,asetpts=PTS-STARTPTS[ar]; 
    [1]atrim=0.29:duration=5.5,asetpts=(PTS-STARTPTS - 22050)[al]; 
    [ar][al]acrossfade=d=1[a]; 
    [vr][vl]concat=n=2[v]" -map "[v]" -map "[a]" mixed.m3u8 
0

如果視頻不重疊,音頻流也不會交叉淡入淡出。所以,在這種情況下,我們必須使用不同的修剪濾鏡來完成這項工作。

ffmpeg -i right.m3u8 -i left.m3u8 -filter_complex \ 
     "[0]trim=duration=5,setpts=PTS-STARTPTS[vr]; \ 
     [1]trim=0.79:duration=5,setpts=PTS-STARTPTS[vl]; \ 
     [0]atrim=duration=6,asetpts=PTS-STARTPTS[ar]; \ 
     [1]atrim=0.79:duration=5,asetpts=PTS-STARTPTS[al]; \ 
     [ar][al]acrossfade=d=1:c1=exp:c2=exp[a]; \ 
     [vr][vl]concat=n=2[v]" -map "[v]" -map "[a]" mixed.m3u8 
+0

只是爲了澄清,視頻DO重疊。此測試的左側相機在右側相機記錄後面4.21秒。但是來自這些標記的兩個視頻已同步。 (我目前無法嘗試你的命令。) – jreikes

+0

我的意思是,時間線範式。您希望從一個視頻切換到另一個視頻,但音段不重疊,因此音頻也不會重疊。 – Mulvya

+0

好的,現在我按照你的意思。是的,如果在整個淡入淡出期間從兩個文件中提取音頻,音頻只能淡入淡出。澄清雖然,這是在這裏的情況。第一個視頻在切割點後延伸約15秒。第二個視頻在剪輯前0.79秒開始。交叉漸變持續時間爲1秒,所以視頻剪切點兩側只需要半秒的音頻。除非我誤解了某些東西。 – jreikes