簡體   English   中英

x264 NALU序列化和處理

[英]x264 NALUs serialization and handling

我有我的x264編碼器,從原始視頻流生成NALU。 我需要通過網絡發送這些NALU。 這樣做的最佳方法是什么?

編碼器插入到DirectShow圖中,它是一個變換過濾器,下游我有一個處理網絡的過濾器。 我可以將由變換過濾器創建的NALU直接傳遞給網絡“渲染”過濾器嗎? 它會產生一些內存問題嗎?

我想知道如何在x264中處理為NALU分配的內存 - 誰負責釋放它? 另外我想知道我是否可以手動將NALU序列化為比特流,然后以相同的方式重建它?

將NALU發送到網絡的最佳方式是通過RTP流。 有關H.264的RTP分組化的詳細信息,請參閱RFC 6184 我認為您可以安全地將NALU傳遞給渲染器,前提是您的媒體緩沖區足夠大以容納NALU。

我需要通過網絡發送這些NALU。 這樣做的最佳方法是什么?

“最佳”需要澄清:最容易做,最好的兼容性,兼容特定的對應實現等。

我可以將由變換過濾器創建的NALU直接傳遞給網絡“渲染”過濾器嗎? 它會產生一些內存問題嗎?

沒有股票網絡渲染器,您應該了解如何使用您將要使用的特定渲染器。

我想知道如何在x264中處理為NALU分配的內存 - 誰負責釋放它?

x264管理它填充的緩沖區, x264_encoder_encode返回你對這些緩沖區的引用,你不需要釋放數據,只要確保及時復制它,因為它將在下次調用時失效。 之后不要忘記x264_encoder_close - 它將釋放內部管理的所有資源。

另外我想知道我是否可以手動將NALU序列化為比特流,然后以相同的方式重建它?

是的,你可以做到。 如果你的網絡過濾器對可以重現在內部連接上做網絡內容的同一個流,那么它就可以正常工作了。 在與H.264的互操作性方面,最好的網絡協議是RTP。 然而,與簡單地接受/發送/接收/再現比特流的步驟相比,它是相當復雜的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM