我在我的代碼中使用ffmpeg庫從相機捕獲rtsp流並在flv中寫入。如果我只從一臺攝像機捕獲數據流,並且攝像機只有視頻流,那麼沒有任何錯誤,我得到了第一個數據包,並且使用了pts和dts 1698557894,其他數據包的pts和dts緩慢增加。但是,如果相機具有視頻和音頻流,則會出現奇怪的事情。例如,視頻數據包pts和dts以1698557894開始並緩慢增加,並且音頻從0開始然後緩慢增加,並且在~50個數據包跳轉到值151004317並緩慢增加之後。另一種情況是,音頻從0開始緩慢增加,視頻從1785662594開始,在〜70分組跳轉到234722並緩慢增加。這種行爲不允許flv分段複用器寫入文件,它只是返回一些EINVAL值。相機的pts和dts跳轉問題
另外,如果我嘗試捕獲兩個攝像頭的流,第一個攝像頭只有視頻,另一個攝像頭有視頻和音頻,那麼第一個攝像頭數據包的pts和dts都可以。但是另一臺攝像機的視頻和音頻點數/差分值是非常不同的。 av_read_frame返回pts/dts值爲1811924055的視頻數據包,該數據包在flv複用器中重新調整爲557003451,音頻4456027604重新調整爲557003451,但這些值必須幾乎相等!
所以,問題是: 0)爲什麼這些跳躍發生在捕捉的開始?這是相機問題還是隻是一些ffmpeg問題? 1)這種跳躍會在一段很長的時間後發生嗎?我該如何處理它? 2)爲什麼相機的視頻和音頻有不同的pts/dts值?