[英]C++ ffmpeg real-time video transmisson
我是一名學生,目前正在完成我的最終項目。 我們的項目專注於新型網絡編碼研究。 現在,我的任務是進行實時視頻傳輸以測試網絡編碼。 我已經學到了ffmepg和opencv的知識,並完成了一個c ++程序,該程序可以將視頻分成幀並逐幀發送。 但是,通過這種方式,傳輸數據(幀)的大小比原始視頻文件的大小大得多。 我的專家建議我嘗試查找視頻(mjpeg格式)的關鍵幀和幀間差異,以便僅發送關鍵幀和幀間差異而不是所有具有大量冗余的幀,從而減少了傳輸數據。 我不知道如何在c ++和ffmpeg或opencv中執行此操作。 任何人都可以提出建議嗎? 對於我的舊程序,請參考這里。 C ++視頻流和轉換
我建議完全不要使用ffmpeg / libav *。 我建議直接使用libx264。 通過使用x264,您可以利用回調更好地控制NALU切片大小,並降低編碼器延遲。
已經可以幫助您的兩個問題:
您如何從C ++連接到ffmpeg? ffmpeg通常是指命令行工具,從c ++開始,您通常使用屬於ffmpeg的單個庫。 您應該使用libavcodec對幀進行編碼,並可能使用libavformat將其打包為容器格式。
您使用哪種編解碼器?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.