Pregunta Pipe VLC de salida a ffplay?


Tengo una PC (rota), donde VLC solo reproduce videos en la mitad izquierda de la pantalla, lo que parece relacionado con OpenGL / drivers (ver aquí) Por otra parte, ffplay no tiene el problema de la mitad de la ventana, pero puede abrir solo algunos videos que quiero reproducir.

Entonces, similar a ¿Cómo puedo canalizar la salida de ffmpeg a ffplay?, Pensé en conectar VLC a ffplay; y llegué hasta aquí (estoy usando este video)

$ 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

Así que básicamente ffplay retoma los VLC IYUV debiera ser yuv420p, mientras leo en Preguntas y discusiones de usuarios de Libav - Re: Escala de 4: 2: 2 a 4: 2: 0

Tenga en cuenta que YUV420P es a.k.a. I420 e IYUV.

... desafortunadamente, la salida de video está mal:

bad video

Tenga en cuenta que si no especifico el tamaño para ffplay, falla con:

picture size invalid (0x0)
    Last message repeated 1 times
[rawvideo @ 0x9c6f890]Could not find codec parameters (Video: rawvideo, yuv420p)
[rawvideo @ 0x9c6f890]Estimating duration from bitrate, this may be inaccurate
pipe:-: could not find codec parameters

Entonces, mi pregunta es:

  • ¿Alguien sabría de una línea de comando adecuada para la tubería de vlc a ffplay - usando video en bruto?
  • ¿Hay alguna manera de hacer vlc reproduzca audio como de costumbre, y canalice su salida de video como video sin procesar a ffplay (para evitar la sobrecarga de muxing de video y audio en un nuevo formato, ¿cuál ffplay debería además demultiplexar?)

EDITAR: Aquí hay una línea de comandos que proporciona el video adecuado con el archivo de prueba como se indicó anteriormente (a través de Los foros de VideoLAN • Envío de datos de YUV a una tubería debajo de las ventanas)

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

Sin embargo:

  • ffplay segfaults cuando intento descomprimir algunos otros videos con vlc
  • Para una tercera categoría de videos, vlc no exportará la configuración de FPS, por lo que ffplay se iniciará, mostrará un cuadro y luego se congelará la pantalla (y deberá desplazar continuamente el botón del mouse para que la ventana de video se actualice). Tenga en cuenta que no puede forzar la velocidad de cuadro de cuadro para contenedores atemporales - y al hacer --yuv-file (en lugar de --sout) el --sout-transcode-fps no se aplicará (de vlc lado de las cosas)

2


origen


Me irrita ffplay no podría jugar algo que VLC puede. Especialmente Ogg Theora (?) Video. ¿Existe la posibilidad de que pueda suministrar una pequeña muestra de prueba? - slhck
Gracias por el comentario, @slhck: el video está vinculado en la publicación (es de Wikimedia Commons). En realidad, ambos vlc y ffplay puede reproducir este archivo bien - la pregunta es acerca de qué formato elegir, por lo que un canal descodificó la salida de vlc dentro ffplay... ¡Saludos! - sdaau
¿Has intentado agregar en el --rawvid-chroma parámetro a la llamada a VLC? Prueba agregar --rawvid-chroma=YV12 antes de la tubería (también puedes probar UYVY o I422, pero creo que el parámetro debería ser YV12 para YUV240p. - Breakthrough
Gracias por el comentario @Breakthrough: lo probé ahora, pero no funciona, y probablemente no debería (tenga en cuenta que --rawvid-chroma es una opción para "demuxer de video sin procesar" == "player"; sin embargo, aquí VLC reproduce "OGV", no "video en bruto") ... es por eso que el croma debería haberse arreglado con vcodec=IYUVen el primer intento, pero por alguna razón no lo es. ¡Aclamaciones! - sdaau


Respuestas:


¿Has intentado desactivar la aceleración de video de hardware en VLC? Esto podría solucionar el problema de la mitad de la pantalla.

enter image description here

Sí, me doy cuenta de que esta no es la pregunta, pero parece ser una Problema XY.


1



Gracias por eso @DarthAndroid - por supuesto tengo, entre las primeras cosas :) No funciona - la publicación vinculada de Slitaz confirma que cargar el controlador 'nvidia' para X11 fue lo que resolvió el problema; pero en mi sistema, radeon.ko.gz está cargado, y X11 no lo acepta en su configuración; que es por lo que estoy viendo esta solución (que en realidad funciona, para aquellos tubos que no segfault con avi como en OP edit) ... Básicamente, solo quiero usar vlc como reproductor de audio y demuxer / decodificador de video - y ffplay como básicamente una "pantalla de proyección" :) ¡Salud! - sdaau