LINUX.ORG.RU

libvlc webm не воспроизводится видео

 , ,


0

1

нужно записать часть потока с ютуба в формате 1080p.

mp4 не подошел, ему почему не удается задать время старта.

Приходится использовать webm(кодек в данном случае VP90). Видео вопроизводится нормально, но как только делаю stream_out_duplicate в файл(или на дисплей как в коде), видео крашится на квадраты.

пробовал указывать #transcode{vcodec=VP90}, но это не помогло.

Причем не важно откуда идет поток, с локального файла или ютуба.

libvlc_instance_t * inst;
    libvlc_media_player_t *mp;
    libvlc_media_t *m;

    char* arguments[] = {
        "--noaudio",
            "--sub-source=marq",
    };


    inst = libvlc_new (2, arguments);

    QString streamoption;

    url = "https://r17---sn-axq7sn7e.googlevideo.com/videoplayback?id=77123d856c8dbb9a&itag=248&source=youtube&requiressl=yes&pl=23&mm=31&mn=sn-axq7sn7e&mv=m&ms=au&ratebypass=yes&mime=video/webm&gir=yes&clen=2191736758&lmt=1430499939760211&dur=8226.133&signature=675883FC87470993EEEFC53199A16590C2EC45DE.97F8C3FB02CD70AEA389EB82128C4DB74009203A&sver=3&fexp=9407117,9416126,9416916,9420452,9422596,9422970,9423661,9423662,9424134,9426720,9427667,9427677,9428043,9428092,9428376,9428432,9428469,9428650&upn=EKfkRq1NQqs&key=dg_yt0&mt=1455489552&ip=91.215.122.51&ipbits=0&expire=1455511250&sparams=ip,ipbits,expire,id,itag,source,requiressl,pl,mm,mn,mv,ms,ratebypass,mime,gir,clen,lmt,dur";
url = "file:///C:/Users/nexus/1.webm";
     m = libvlc_media_new_location (inst, url.toStdString().c_str());


     streamoption = ":sout=#stream_out_duplicate{dst=display}";
     libvlc_media_add_option(m, streamoption.toStdString().c_str());

     streamoption = ":start-time=" + QString::number(startTimeS);
     libvlc_media_add_option(m, streamoption.toStdString().c_str());
     streamoption = ":stop-time=" + QString::number(stopTimeS + 1);
     libvlc_media_add_option(m, streamoption.toStdString().c_str());

     mp = libvlc_media_player_new_from_media (m);

     /* No need to keep the media now */
     libvlc_media_release (m);

      /* play the media_player */
     
    libvlc_media_player_play (mp);


переделал на чистый ffmpeg, с ним все работает, видимо какой-то косяк в vlc

nexus86
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.