是否可以从标准文件流中读取视频?

时间:2019-01-25 03:44:29

标签: c++ opencv video filestream gnupg

我正在尝试让一些客户端播放用gpg加密的视频。

我已加密了一个.mp4文件,但我想在普通视频播放器(vlc,窗口媒体或其他)上“播放”该文件,而无需创建原始视频文件。

我使用管道完成此操作,并在Linux环境中运行了它。 这不是原始的Test.mp4文件:

gpg --decrypt Test.mp4.gpg | vlc -

但是,据我所知,这种方法仅适用于 Vlc 。 我想我应该考虑另一种解决方案。

我认为可以使用 gpg api获得解密的文件流,并使用 opencv 之类的库进行播放。

Mat frame;
//--- INITIALIZE VIDEOCAPTURE
VideoCapture cap;
// open the default camera using default API
cap.open("C:\\Users\\june\\source\\repos\\VideoTest\\Sample_30mb.mp4");

if (!cap.isOpened()) {
    cerr << "ERROR! Unable to open camera\n";
    return -1;
}

//--- GRAB AND WRITE LOOP
cout << "Start grabbing" << endl
    << "Press any key to terminate" << endl;
for (;;)
{
    // wait for a new frame from camera and store it into 'frame'
    cap.read(frame);
    // check if we succeeded
    if (frame.empty()) {
        cerr << "ERROR! blank frame grabbed\n";
        break;
    }
    // show live and wait for a key with timeout long enough to show images
    imshow("Live", frame);
    if (waitKey(25) >= 27)
        break;


}

我检查了c ++ opencv 库,但找不到如何获取文件流的视频数据。 唯一可能的方法是“打开”具有文件名或设备ID的文件。

那么...您有什么想法吗?

0 个答案:

没有答案