Saída Pipe VLC para ffplay?

2

Eu tenho um PC (quebrado), onde o VLC reproduz vídeos apenas na metade esquerda da tela, o que parece relacionado ao OpenGL / drivers (veja aqui ). Por outro lado, ffplay não tem o problema da meia janela, mas pode abrir apenas alguns vídeos que quero reproduzir.

Assim, semelhante a Como posso enviar saída do ffmpeg para ffplay? , pensei em canalizar o VLC para ffplay ; e cheguei até aqui (estou usando este vídeo ):

$ cvlc Rent_an_Ambassador.ogv --sout '#transcode{vcodec=IYUV}:std{access=file,mux=raw,dst=-}' | ffplay -f rawvideo -s 398x224 pipe:-
...
Warning: call to srand(1369860697)
Warning: call to rand()
Blocked: call to unsetenv("DBUS_ACTIVATION_ADDRESS")
Blocked: call to unsetenv("DBUS_ACTIVATION_BUS_TYPE")
[0x98f4b64] dummy interface: using the dummy interface module...
[0x9903254] mux_dummy mux: Open
[rawvideo @ 0x98bf890]Estimating duration from bitrate, this may be inaccurate
Input #0, rawvideo, from 'pipe:-':
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0.0: Video: rawvideo, yuv420p, 398x224, 25 tbr, 25 tbn, 25 tbc

Então, basicamente, ffplay pega que IYUV do VLC deve ser yuv420p , como eu li em Perguntas e discussões sobre usuários de Libav - Re: Escala de imagem de 4: 2: 2 a 4: 2: 0

Note that YUV420P is a.k.a. I420 and IYUV.

... infelizmente, a saída de vídeo está errada:

Observeque,seeunãoespecificarotamanhoparaffplay,elefalharácom:

picturesizeinvalid(0x0)Lastmessagerepeated1times[rawvideo@0x9c6f890]Couldnotfindcodecparameters(Video:rawvideo,yuv420p)[rawvideo@0x9c6f890]Estimatingdurationfrombitrate,thismaybeinaccuratepipe:-:couldnotfindcodecparameters

Então,minhaperguntaé:

  • Alguémsaberiadeumalinhadecomandoadequadaparacanalizardevlcparaffplay-usandovídeobruto?
  • Existeumamaneiradefazercomquevlcreproduziráudiocomodecostume,ecanalizarsuasaídadevídeocomoumvídeobrutoparaffplay(paraevitarasobrecargadevídeoeáudioemumnovoformato,queoffplayteriaadicionalmentedemux?)

EDIT:Aquiestáumalinhadecomandoquefornecevídeoadequadocomoarquivodetesteacima(via The Fóruns VideoLAN • Enviando dados YUV para um pipe nas janelas ):

cvlc Rent_an_Ambassador.ogv --vout=yuv --yuv-yuv4mpeg2 --yuv-file=/dev/stdout | ffplay pipe:-

No entanto:

  • ffplay segfaults quando tento descompactar alguns outros vídeos com vlc
  • Para uma terceira categoria de vídeos, vlc não exportará a configuração do FPS - por isso ffplay será iniciado, exibirá um quadro e, em seguida, congelará a exibição (e você terá que rolar o botão do mouse continuamente janela de vídeo é atualizada). Observe aqui que você não pode forçar a taxa de quadros do ffplay para contêineres atemporais - e ao fazer --yuv-file (em vez de --sout ), o --sout-transcode-fps não será aplicado (do lado vlc das coisas)
por sdaau 29.05.2013 / 22:59

1 resposta

1

Você já tentou desativar a aceleração de vídeo por hardware no VLC? Isso pode corrigir o problema da metade da tela.

Sim,perceboqueessanãoéapergunta,maspareceseruma Problema XY .

    
por 30.05.2013 / 00:33