2017-08-14 115 views
0

試圖通過HLS重新串流並記錄我的Hikvision IP攝像機ffmpegFFmpeg HLS分段開始時間計算錯誤

因此,基本上一切工作正常,但是,當我試圖計算整個記錄的持續時間時,它會導致分段TS文件之間的不匹配。

所以基本上我的FFmpeg正在做的:

"ffmpeg", 
"-rtsp_transport", "tcp", 
"-stimeout", "3000000", 
"-re", 
"-i", stream, 
"-vcodec", "copy", 
"-acodec", "libfdk_aac", 
"-f", "segment", 
"-segment_list_type", "m3u8", 
"-segment_list", name, 
"-segment_list_size", "1", 
"-segment_format", "mpegts", 
"-segment_time", "5", 
segment_filename, 

,其結果是:

filename cam1-1502731225-000018.ts 
start_time 90.128000 
end_time 96.150489 

filename cam1-1502731225-000019.ts 
start_time 96.128000 
end_time 102.150489 

filename cam1-1502731225-000020.ts 
start_time 102.128000 
end_time 105.150489 

所以文件中的每一END_TIME應該是一樣的下一個文件的START_TIME。雖然並非如此。

已經失去了幾天找到解決方案 - 迄今沒有運氣!但我確實觀察到,如果我將視頻輸出到MP4文件,然後將其作爲輸入(對於相同的命令行) - 那就沒問題。

我假設它必須是原始RTSP URL的PTS問題。試圖應用-filter_complex setpts=N/(16*TB)時 - 它修復了問題,但是爲編碼繪製了CPU資源。

回答

0

音頻幀和視頻不是完全相同的長度。開始和結束時間可能基於任何流首先開始計算,最後結束。因此,如果音頻在一段中的視頻前20ms結束,它必須在接下來的20ms開始。

+0

感謝您的回覆。我認爲完全相同的東西,嘗試了不同的選擇(例如-an(沒有音頻) - 同樣的東西,你能告訴我些什麼嗎? –

+0

我的建議是忽略它。 – szatmary