2013-10-04 16 views

回答

1

我不知道FFmpeg是否提供直接API來檢索這些細節。但是,這裏有一個令人難以置信的懶惰的解決方案,應該讓你抓住從一個QuickTime/MP4文件avcC原子:

  1. 打開文件,並找到在頂層原子結構(中mdat遍歷moov原子,ftyp ,也許還有其他一些原子)。
  2. 將整個moov原子加載到內存中(它很容易適合)。
  3. 執行'avcC'的字符串搜索。

這不是最乾淨的方法,但它可能會工作。爲了獲得額外的正確性(以防萬一字符串'avcC'出現在原子中的其他地方,如元數據原子中),請檢查'avcC'字符串前面的4個字節,將它們視爲一個大端32位數字,原子的長度爲avcC,並確保它們有意義。我只檢查了一些H.264.MP4文件,經驗上它的長度大約是43-45字節。至少要確保原子的長度大於8(最小原子尺寸),並且不會碰撞原子的末端。