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
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é:
vlc
paraffplay
-usandovídeobruto?vlc
reproduziráudiocomodecostume,ecanalizarsuasaídadevídeocomoumvídeobrutoparaffplay
(paraevitarasobrecargadevídeoeáudioemumnovoformato,queoffplayteriaadicionalmentedemux?)EDIT:Aquiestáumalinhadecomandoquefornecevídeoadequadocomoarquivodetesteacima(via
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
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) 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
Tags video ffmpeg pipe vlc-media-player