2 votes

Transférer la sortie VLC vers ffplay ?

J'ai un PC (cassé), où VLC ne lit les vidéos que sur la moitié gauche de l'écran, ce qui semble lié à OpenGL/pilotes (cf. aquí ). D'autre part, ffplay n'a pas le problème de la demi-fenêtre, mais ne peut ouvrir que certaines vidéos que je veux lire.

Donc, comme pour Comment puis-je faire passer la sortie de ffmpeg à ffplay ? j'ai pensé à utiliser VLC pour ffplay et je suis arrivé jusqu'ici (j'utilise cette vidéo ):

$ 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

Donc, en gros ffplay il détecte que l'interface de VLC IYUV devrait être yuv420p comme je l'ai lu dans Questions et discussions des utilisateurs de Libav - Re : Mettre à l'échelle une image de 4:2:2 à 4:2:0

Notez que YUV420P est aussi connu sous le nom de I420 et IYUV.

... malheureusement, la sortie vidéo n'est pas bonne :

bad video

Notez que si je ne spécifie pas la taille pour les ffplay il échoue avec :

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

Donc, ma question est :

  • Quelqu'un connaît-il une ligne de commande correcte pour passer de vlc a ffplay - en utilisant la vidéo brute ?
  • Y a-t-il un moyen de faire vlc de lire l'audio comme d'habitude, et d'acheminer sa sortie vidéo sous forme de vidéo brute vers ffplay (afin d'éviter la surcharge du muxing de la vidéo et de l'audio dans un nouveau format, que ffplay devrait démuxer en plus ?)

EDIT : Voici une ligne de commande qui fournit une vidéo correcte avec le fichier de test ci-dessus (via The VideoLAN Forums - Envoyer des données YUV à un tube sous Windows ):

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

Cependant :

  • ffplay segfaults lorsque j'essaie de décompresser d'autres vidéos avec vlc
  • Pour une troisième catégorie de vidéos, vlc n'exportera pas le paramètre FPS - donc ffplay démarre, affiche une image, puis fige l'affichage (et vous devrez faire défiler continuellement le bouton de la souris pour que la fenêtre vidéo se rafraîchisse). Notez ici que vous ne pouvez pas forcer le taux de trame de ffplay pour les conteneurs intemporels - et en faisant --yuv-file (au lieu de --sout ) le --sout-transcode-fps ne s'appliquera pas (du vlc côté des choses)

1voto

Darth Android Points 36975

Avez-vous essayé de désactiver l'accélération vidéo matérielle dans VLC ? Cela pourrait résoudre le problème du demi-écran.

enter image description here

Oui, je me rends compte que ce n'est pas la question posée, mais il semble que c'est une <a href="https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem">Problème XY </a>.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X