2016-10-27 86 views
0

我需要在視頻的子部分設置疊加層(帶有alpha通道的image.png)。將它設置在整個視頻上效果很好。但是我需要在開始和結束視頻的時候沒有PNG的10秒間隔。如何在視頻的子部分上設置疊加圖像?

因此疊加應該在開始後的第10秒出現,並在(長度 - 10)秒內自動消失。我花了一天的時間試圖使其工作,但似乎trim視頻過濾器根本不支持修剪「單一PNG圖像視頻流」。

在此命令

ffmpeg -y -i "$INPUT" -i "$PNG" -c:v libx264 -preset ultrafast -filter_complex \ 
"[0:v]setpts=0.5*PTS,fps=25[vm]; [1:0]trim=10:190[vo]; [vm][vo]overlay=x=0:y=0:overlay=eof_action=pass[v]; [0:a]atempo=2.0[a]" \ 
-map "[v]" -map "[a]" qtest_AVUP.avi 

190應該與某些功能/計算所取代,但真正的問題是覆蓋不適用的。結果我們得到了沒有覆蓋的正常視頻。 你能幫我解決這個問題嗎?

  1. 如何修復覆蓋不適用錯誤?
  2. 如何設置(video_stream_length-10s)而不是190?

回答

0

試試這個您覆蓋代碼:

-filter_complex "[0:v][1:v] overlay=25:25:enable='between(t,20,40)'" 

這將會把20和40秒之間的重疊。你必須做一個計算才能得到你的EOF-10。下面是一些代碼,讓您的視頻時長:

DURATION=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 $INPUT) 
+0

您可以使用['單獨ffprobe'得到持續時間(http://superuser.com/questions/650291/how-to-get-video-duration- in-seconds/945604#945604)並省略'grep','cut'和'tr'。 – LordNeckbeard

+0

好點。編輯我的答案。 – UltrasoundJelly

相關問題