
我想向影片(由用戶上傳)添加浮水印徽標,並將其與簡介連接起來。產生的影片必須與輸入影片具有相同的格式。
當上傳的視訊具有多個音訊串流並且包含字幕時,問題就會出現。
我透過使用類似這樣的命令解決了音訊問題。
ffmpeg -i intro.mp4 -i input.mkv -i logo.png -filter_complex "[0:v] scale=480:270,setdar=16/9 [a]; [1:v] scale=480:270,setdar=16/9 [b]; [2:0] scale=480:270 [wm]; [b][wm] overlay[ov]; [a][0:a:0][0:a:0] [ov][1:a:0][1:a:1] concat=n=2:v=1:a=2 [vd] [a0] [a1]" -map "[vd]" -map "[a0]" -map "[a1]" -y output.mkv
但輸出不包含字幕。
有人可以幫忙嗎?
答案1
使用
ffmpeg -i intro.mp4 -i input.mkv -itsoffset 4.5 -i input.mkv -i logo.png
-filter_complex
"[0:v] scale=480:270,setdar=16/9 [a];
[1:v] scale=480:270,setdar=16/9 [b];
[3:0] scale=480:270 [wm];
[b][wm] overlay[ov];
[a][0:a:0][0:a:0] [ov][1:a:0][1:a:1] concat=n=2:v=1:a=2 [vd] [a0] [a1]"
-map "[vd]" -map "[a0]" -map "[a1]" -map 2:s? -c:s copy -y output.mkv
一旦指定任何映射語句,則僅包含那些映射的流。因此,您必須明確地映射任何字幕流。由於可能沒有,我添加了一個尾隨?
來指示條件賦值。
我已經輸入了兩次輸入視頻,因為輸出中的字幕時間戳將是錯誤的,因為介紹現在位於視頻之前。時間戳偏移量被加到第二個輸入,並且字幕從該提要映射。該itsoffset
值應等於介紹的持續時間(以秒為單位)。應該不需要轉碼字幕。