我正在尝试让一些客户端播放用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的文件。
那么...您有什么想法吗?