簡體   English   中英

如何在c ++中使用ffmpeg流式傳輸opencv Mat

[英]How to stream a opencv Mat with ffmpeg in c++

我是新來的。 我正在嘗試使用 ffmpeg 在 LAN 上流式傳輸一些使用 opencv 處理的圖像。 我看到了這個: Pipe raw OpenCV images to FFmpeg但它對我不起作用,它只會產生噪音。 我認為我發送的數據格式不正確。 我也看看這個: How to send opencv video's to ffmpeg但是(看最后一個答案)選項 -f jpeg_pipe 給我錯誤。

我現在應該做什么:

  • 我有一個名為“composedImage”的 RGB 墊子
  • 我發送輸出: std::cout << compositionImage; 輸出是由逗號分隔的像素值
  • 然后我打電話:

./示例 | ffmpeg -f rawvideo -pixel_format bgr24 -video_size 160x120 -framerate 20 -i - -f udp://192.168.1.79:1234

  • 我嘗試使用 VLC(它不起作用)和 ffplay 閱讀:

ffplay -f rawvideo -pixel_format gray -video_size 160x120 -framerate 30 udp://192.168.1.79:1234

這里看起來很簡單: http : //ffmpeg.org/ffmpeg-formats.html#rawvideo

我也嘗試寫圖像並發送它,但我有錯誤。 可能它會在圖像完成之前嘗試發送。

感謝您的幫助。

我設法進行了流式傳輸,盡管具有馬鈴薯質量,但也許某些 ffmpeg 大師可以幫助使用 ffmpeg 命令。

#include <iostream>                                                          
#include <opencv2/opencv.hpp>                                                
#include <vector>                                      

using namespace cv;                                                          

int main() {                                                                 
    VideoCapture cap("Your video or stream goes here");
    Mat frame;                                                               
    std::ios::sync_with_stdio(false);                                        

    while (cap.read(frame)) {                                                
        for (size_t i = 0; i < frame.dataend - frame.datastart; i++) 
           std::cout << frame.data[i];                                   
    }                                                                        

    return 0;                                                                
}                                                                            

然后將其通過管道傳輸到 ffmpeg 就像

./test | ffmpeg -f rawvideo -pixel_format bgr24 -video_size 1912x796 -re -framerate 20  -i - -f mpegts -preset ultrafast udp://127.0.0.1:1234

並用 ffplay mpv 或其他方式播放

ffplay udp://127.0.0.1:1234

暫無
暫無

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

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