Возможно ли, что чтение видео из стандартного файлового потока? - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь заставить клиента воспроизводить видео, зашифрованное с помощью gpg .

Я зашифровал файл .mp4, и я хотел бы просто воспроизвести его на обычных видеоплеерах(vlc или оконный носитель или другое) без создания исходного видеофайла.

Я сделал это с pipe и запустил в среде 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 , но не смог найти, как получить видеоданные для файлового потока.Единственный возможный способ - «открыть» файл с именем файла или идентификатором устройства.

Итак ... у вас есть идеи?

...