2016-05-13 457 views
0

我們已經使用舊版本的ffmpeg一段時間了,現在我們需要升級到更新版本(例如2.6),並且在轉換時遇到問題。 mov到.mp4。ffmpeg正在將start_time設置爲負值輸出

比如我有一個具有兩個流,視頻和音頻播放的.mov視頻文件,都與START_TIME = 0,當我把它轉換使用:

的ffmpeg -i my_file.mov my_file.mp4

輸出mp4具有start_time = -0.021333的音頻流。

格式部分,如圖ffprobe -show_format -show_streams my_file.mp4 也有START_TIME = -0.021333

以前的版本中,我們使用沒有這個問題的ffmpeg ...

當我們在網絡瀏覽器中使用<視頻播放輸出mp4文件時>播放時都很好,但如果我們暫停播放視頻並且在這裏和那邊尋找我們注意到所有幀都被關閉了。第一幀被複制和最後一幀丟失!

換句話說:

dom.currentTime = 0 shows the first frame 
dom.currentTime = 1/24 (fps is 24) shows the first frame again 
dom.currentTime = 2/24 shows the second frame instead of the third frame 
dom.currentTime = 3/24 shows the third frame instead of the fourth frame 
... 

我們認爲,這是由場START_TIME造成= -0.021333

這對我們來說是一個大問題......

這是攝製的鉻和Firefox,但不知何故Safari瀏覽器沒有這個問題...

谷歌搜索後,我們發現,我們不是唯一一個這個問題,但它不清楚什麼是解決方案是。

有人建議用「-c:副本」的論點和它的工作的一些文件,但給了一些人的錯誤:(?不正確的編解碼器參數)

無法寫入輸出文件#0頭:無效的參數

因此,這似乎並沒有成爲一個強大的解決方案......

任何幫助,將不勝感激。

回答

2

你可以儘量避免消極TS完全

ffmpeg -i my_file.mov -avoid_negative_ts make_zero my_file.mp4 

與您輸入的文件,我跑了這個命令,

ffmpeg -i AnimalTrancoding_v001_Shot0020.mov out.mp4 

在輸出Rrunning ffprobe,

ffprobe -show_entries format=start_time:stream=start_time -of compact out.mp4 

我看到

stream|start_time=0.000000 
stream|start_time=0.000000 
stream|start_time=0.000000 
format|start_time=0.000000 

比較前幾幀沒有顯示任何重複或下降的來源。

我正在運行最近的每晚構建(2016年5月)。

+0

哦,它更好,但它似乎忽略了make_zero ... 所以start_time現在是0.044000而不是-0.021333 –

+0

您可以粘貼一個這樣的命令的完整控制檯輸出? – Mulvya

+0

以下是輸出:https://www.dropbox.com/s/3x5wiyre8qm4b9l/test3.output?dl=0 –