我注意到,對於一些視頻文件,AVPacket結構內返回的PTS時間戳不會從0開始,但會在一段時間後開始。例如。在3.128什麼的。我測試過的99%的視頻文件都有PTS時間戳,從0開始,但很少有文件有一些奇怪的時間戳,從3.128或1.2開始。我應該如何處理這些情況?我應該只記錄第一個數據包的PTS時間戳,然後從以下所有時間戳值中減去此PTS以獲得基於0的PTS值?或者我應該如何處理這些非基於0的時間戳?謝謝你的幫助!AVCodec PTS時間戳不是從0開始
1
A
回答
0
Libavcodec/avformat只是給你在文件中的數據。不幸的是(或者幸運的是,根據你的觀點),許多文件格式不需要時間戳從0開始。事實上,如果幾個文件構成較長的流的一部分,並且你可以讓它們從其他值開始很重要希望能夠非破壞性地將它們放回到一起。
如果您想要基於0的時間戳,那麼就像您所說的那樣,您需要保存最低/第一個時間戳並從所有時間戳中減去該值。但請注意,對於某些非常醜陋的格式(如DVD視頻),時間戳在內容中間重置很常見,這甚至會導致您的方法獲得負面時間戳。如果您希望您可能正在處理這些內容,則需要檢測不連續性並對其進行修補。最後,我與avcodec/avformat一起工作,他們沒有一個功能可以自動爲你做這件事,但現在他們可能會這樣做。如果你認爲你可能需要,我會研究它。
相關問題
- 1. JavaScript從時間戳開始計數
- 2. SFTranscriptionSegment的時間戳記始終爲0
- 3. 從開始計算總運行時間/停止時間戳
- 4. 從現在開始轉換Unix時間戳時間在PHP
- 5. 爲什麼應該從0開始而不是從1開始?
- 6. 酒吧從1開始而不是0
- 7. iOS arc4random不是從0開始
- 8. 從1開始代碼而不是0?
- 9. 從位置1開始NSArray不是0
- 10. 與軸(不是從0開始)
- 11. mySQL從0更新時間戳
- 12. 獲取日期開始的時間戳
- 13. mySQL開始一週的時間戳
- 14. 差(0)和時間戳(6)
- 15. 開始Chart.js時間比例爲0
- 16. PHP檢查時間戳是否從現在開始大於24小時
- 17. SQL檢查時間戳是否從現在開始大於24小時(MYSQL)
- 18. 代表日期從長,從0年開始,而不是從1970年開始
- 19. 正則表達式不能從0開始,但可以爲0或0開始,
- 20. msSQL日誌數據 - 從多個時間戳開始和結束
- 21. 從日期,月份和年份開始的Python時間戳
- 22. 從每日時間戳開始按月分區分區表?
- 23. 從時間戳開始的抽象日子
- 24. MSBuild永遠從VS開始檢查時間戳
- 25. 選擇時間戳返回所有或0時間戳
- 26. 在unix時間戳(php)中獲取昨天的開始時間
- 27. 時間戳是不同的
- 28. 爲什麼增量計數從0開始而不是從1開始?
- 29. 從範圍開始的Excel VBA數組從-1開始而不是0
- 30. 使gnuplot的x軸從0開始,而不是從第一個日期開始