2017-05-30 41 views
0

輸入文件FFMPEG圖像不更新

  1. 具有正由Python腳本
  2. 小MP4文件,將通過的concat輸入被環每5秒鐘更新一次的疊加圖像
  3. MP3文件作爲音頻源


該命令(更新)

這是我目前正在使用的命令組合和流輸入的命令。使用-framerate 1代替-r 1


問題

所以,問題是圖像不總是更新

ffmpeg -re -i music.mp3 -f concat -i videoincludes.txt 
-r 1 -loop 1 -f image2 -i overlay.png 
-c:v libx264 -c:a aac -shortest -crf 23 -pix_fmt yuv420p 
-maxrate 2500k -bufsize 2500k -preset ultrafast -r 30 -g 60 -b:v 2000k -b:a 192k -ar 44100 
-filter_complex "[1:v][2:v] overlay=0:0" -map 0:a -strict -2 
-f flv rtmp://a.rtmp.youtube.com/live2/{key} 

阿爾斯嘗試。有時它會在開始時每隔幾秒更新一次,但在10-20秒後停止更新,而在日誌輸出中沒有任何區別,有時它不會更新。

但是,我可以確認圖像正在被Python腳本更新,但FFmpeg只是沒有選擇它。

我讀取設置圖像的輸入格式爲image2應該允許它更新,所以我不知道什麼是錯的,或者我可以做些什麼來改善它。

+0

無法在補償,我現在就可以測試,但嘗試改變'-r 1'到'-framerate 1'並在其旁邊添加'-re'。 – Mulvya

+0

嘗試了兩個標誌,但都沒有解決問題:( –

+0

@Mulvya所以我做了一點測試,看來問題是圖像文件沒有足夠的不同,從前一個觸發ffmpeg更新文件輸入,關於這個的任何想法? –

回答

0

我正在做同樣的工作,最後,我想我找到了答案。 由於流彼此不同,我們必須重置它們的時間戳setpts=PTS-STARTPTS,讓它們以相同的零時間戳開始。此外,還嘗試使用image2pipe而不是image2

這是你的代碼的時間戳復位:

ffmpeg -re -i music.mp3 -f concat -i videoincludes.txt 
-r 1 -loop 1 -f image2pipe -i overlay.png 
-c:v libx264 -c:a aac -shortest -crf 23 -pix_fmt yuv420p 
-maxrate 2500k -bufsize 2500k -preset ultrafast -r 30 -g 60 -b:v 2000k -b:a 192k -ar 44100 
-filter_complex "[1:v]setpts=PTS-STARTPTS[out_main]; [2:v]setpts=PTS-STARTPTS[out_overlay]; [out_main][out_overlay]overlay=0:0" -map 0:a -strict -2 
-f flv rtmp://a.rtmp.youtube.com/live2/{key} 

ps的,我認爲,存在-r-framerate無需再