簡體   English   中英

如何使用帶有C的ffmpeg截取編碼的視頻數據?

[英]How can I intercept encoded video data using ffmpeg with C?

首先,希望您能理解我的英語水平差。 我會盡力寫關於這個的問題。

我目前正在開發一些應用程序。 該應用程序將捕獲桌面並編碼為MP4視頻,並將mp4視頻數據/塊發送給另一個客戶端(所有此過程應在內存中運行,而不是文件中運行)。 因此另一個客戶端應該可以播放從服務器接收到的mp4視頻/數據/塊。

所以我用avio = avio_open(...)並像avio->write_packet = some_function一樣重新分配了寫函數。 但這種方式似乎無法正確“生成” mp4文件/塊。 並且似乎原始的write_packet回調具有將數據包寫入文件的實際邏輯。 但我不想寫入文件。 所以我考慮了一個星期,但對此一無所知。

所以我的問題是:如何截獲應由avio->write_packet處理的“編碼”視頻數據?

不要劫持avio_open aviocontext,這一定會給您帶來麻煩。 如果要提供自定義的AVIOContext,請這樣做-使用avio_alloc_context並在avio_alloc_context提供回調。 使用標志AVFMT_FLAG_CUSTOM_IO表示您已這樣做(因此,當多路復用器關閉時,此AVIOcontext不會自動銷毀)。

暫無
暫無

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

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