2012-08-17 36 views
1

我正在尋找將已壓縮(h264)圖像數據寫入MPEG-4視頻文件。由於此代碼需要進行優化才能在嵌入式平臺上運行,因此代碼應該儘可能簡單。 最好是給一些標題信息(如高度寬度格式fourcc等)和文件名和壓縮數據,並將其轉換爲數據塊並寫入該文件。將壓縮幀寫入mpeg4 chuncks C++

所以我需要的任一:

  • MPEG-4標頭信息(所發生的確切位置)
    • 是否有主頭或者每個數據chunck
    • 在那裏只是頭
    • 對於單個視頻流(矩形)需要什麼頭信息
    • 添加音頻需要什麼頭信息
  • 一個簡單的MPEG-4文件編寫器,不必自己進行壓縮,也可以添加音頻幀。 (c/C++)
+0

檢查此鏈接,它演示了使用FFMPEG庫編寫視頻文件:https://stackoverflow.com/a/43464269/6180077 – 2017-08-09 04:35:30

回答

1

.MP4文件格式在MPEG-4 Part 14規範中描述。它不僅僅是主標題和副標題,它有一定的層次和所謂的框。通過媒體基金會GDCL MP4 Multiplexer或衆多商用同類產品

  • 在Windows -

  • +0

    @ Roman R.在浪費了大量時間試圖讓ffmpeg工作之後,我開始考慮GDCL的muxer。我已經得到了DLL的編譯,所以我應該可以在其中調試,但我不知道從哪裏開始。你可能會向我發送一些示例代碼來使用這個多路複用器嗎?我試過GDCL網站,但它似乎已經關閉(除了您鏈接的網站) – 2012-08-28 12:29:14

    +0

    http://www.gdcl.co.uk/mpeg4/正在復活。從頭開始使用DirectShow可能並不那麼容易,因爲爲了使用此MP4多路複用器,您需要使用此組件和其他組件創建圖形,然後運行它。爲了將自己的塊注入圖中,您需要一個自定義過濾器來提供此數據。這不是火箭科學,但它假定對API有一定的瞭解。我甚至不確定它是否可以推薦用於嵌入式系統,但是ffmpeg還有什麼其他的。 – 2012-08-29 09:15:29

    +0

    基本上我會創建一個自定義源過濾器來發送H.264塊。然後我將它連接到MP4多路複用器,然後將其連接到標準的文件寫入器組件。一起開始將數據寫入.MP4文件。要添加音頻,您需要使用另一個音頻源濾波器(通常爲AAC),並且多路複用器還有另一個輸入,以將所有這些輸入到生成的單個.MP4 – 2012-08-29 09:17:35