2017-10-16 112 views
0

我編寫了代碼將幾個音頻文件與1個圖像合併到WebM視頻中。 (audio1與默認jpg結合使用,audio2與默認jpg結合使用等)。ffmpeg - 將圖像和音頻合成爲視頻後的視頻比音頻更長

問題是,在此之後,視頻長度比音頻長度高25秒(所以音頻在視頻結束前25秒)。

有沒有辦法在音頻完全相同的時間停止視頻?下面是我使用的代碼(我推出一個BAT命令文件)

@echo off 
for %%F in (*.ogg) do ( 
    ffmpeg -loop 1 -framerate 1 -i "default.jpg" -i "%%F" -acodec libopus -b:a 384k -vcodec libvpx-vp9 -lossless 1 -speed 4 -vf scale=1280x720 -shortest "%%F.webm" 
) 
+0

任何幫助?很重要。 –

+0

這是一個錯誤,請參閱https://trac.ffmpeg.org/ticket/5456 – Mulvya

+0

我已經看到了,它沒有幫助。我不會使用2012版的ffmpeg ..那麼是否可以使用ffmpeg刪除每個創建媒體的最後25秒的視頻?就像將每個音頻與特定圖像一起製作成多個視頻,然後移除最後25秒? –

回答

0

好吧,這是各種各樣的解決方案:

首先,運行你的原始命令

ffmpeg -loop 1 -framerate 1 -i "default.jpg" -i "%%F" 
     -acodec libopus -b:a 384k -vcodec libvpx-vp9 -lossless 1 -speed 4 -vf scale=1280x720 -shortest temp.webm 

然後

ffmpeg -i temp.webm -c copy -fflags shortest -max_interleave_delta 10000000000 -flush_packets 0 "%%F.webm" 

這會產生比音頻持續時間長1秒的文件。

0

謝謝!備用解決方案(現已解決),替換-b:「複製」384k的作品。當您保持音頻源質量時,創建具有組合圖像/音頻的媒體似乎具有同步音頻/視頻長度,而無需重新編碼。這是問題所在。