web-dev-qa-db-fra.com

mplayer aalib manquant ("-vo aa" ne fonctionne pas)

Je viens de comprendre que je ne peux pas utiliser aalib pour rendre la sortie vidéo dans mplayer. Pour ceux qui ne le savent pas, aalib est la bibliothèque pour rendu des vidéos en ASCII .

Avant de passer à la version 14.04, cela fonctionnait parfaitement (je ne me souviens pas d’avoir mis en place quelque chose, cela fonctionnait "hors de la boîte").

Voici ce qu'il fait:

$ mplayer -vo aa *
MPlayer2 2.0-701-Gd4c5b7f-2ubuntu2 (C) 2000-2012 MPlayer Team
Cannot open file '/home/crysman/.mplayer/input.conf': No such file or directory
Failed to open /home/crysman/.mplayer/input.conf.
Cannot open file '/etc/mplayer/input.conf': No such file or directory
Failed to open /etc/mplayer/input.conf.

Playing TPB.AFK.2013.480p.h264-SimonKlose.mp4.
Detected file format: QuickTime / MOV (libavformat)
[lavf] stream 0: video (h264), -vid 0
[lavf] stream 1: audio (mp3), -aid 0, -alang eng
Clip info:
 major_brand: mp42
 minor_version: 0
 compatible_brands: mp42isomavc1
 creation_time: 2013-02-08 13:49:43
 encoder: HandBrake 0.9.8 2012071700
Load subtitles in .
SUB: Added subtitle file (1): ./TPB.AFK.2013.480p.h264-SimonKlose.srt
Error opening/initializing the selected video_out (-vo) device.
Selected audio codec: MPEG 1.0/2.0/2.5 layers I, II, III [mpg123]
AUDIO: 48000 Hz, 2 ch, s16le, 128.0 kbit/8.33% (ratio: 16000->192000)
AO: [Pulse] 48000Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A:   8.1 (08.0) of 4927.1 ( 1:22:07.1)  0.4% 

Exiting... (Quit)

Il fait la même chose avec n'importe quelle autre vidéo:

... Erreur lors de l'ouverture/l'initialisation du périphérique video_out (-vo) sélectionné. ...

et

... Vidéo: pas de vidéo ...

Voici un peu de débogage de mplayer:

$ mplayer -vo help
MPlayer2 2.0-701-Gd4c5b7f-2ubuntu2 (C) 2000-2012 MPlayer Team
Available video output drivers:
    vdpau   VDPAU with X11
    xv  X11/Xv
    gl3 OpenGL 3.x
    gl  OpenGL
    x11 X11 ( XImage/Shm )
    sdl SDL YUV/RGB/BGR renderer (SDL v1.1.7+ only!)
    caca    libcaca
    v4l2    V4L2 MPEG Video Decoder Output
    null    Null video output
    directfb    Direct Framebuffer Device
    yuv4mpeg    yuv4mpeg output for mjpegtools
    png PNG file
    jpeg    JPEG file
    gif89a  animated GIF output
    tga Targa output
    pnm PPM/PGM/PGMYUV file
    md5sum  md5sum of each frame
    gl_nosw OpenGL no software rendering

Quelques informations sur le système:

$ uname -a && lsb_release -a && cat /etc/os-release 
Linux crysman-U36SD 3.13.0-29-generic #53-Ubuntu SMP Wed Jun 4 21:00:20 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04 LTS
Release:    14.04
Codename:   trusty
NAME="Ubuntu"
VERSION="14.04, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"

Comment puis-je le faire fonctionner à nouveau, s'il vous plaît? :(

Peut-être que ce soit parce que j'ai abandonné restreint et le multivers ? J'en doute, je ne fais que nourrir les informations ...

Merci!! McZ

4
crysman

OK, il semble que le problème se situe dans le package mplayer2 qui ne contient pas de support aa (libaa1).

J'ai essayé le package mplayer (l'ancien, pas mplayer2) et cela fonctionne!

Voici ce que je viens de faire pour que cela fonctionne :

$ Sudo apt-get purge smplayer
$ Sudo apt-get purge mplayer2 
$ Sudo apt-get autoremove 
$ Sudo apt-get install mplayer smplayer

De cette façon, j'ai réussi à avoir mplayer 1.x, en particulier 1.1-4.8:

$ mplayer --version
Unknown option on the command line: --version
Error parsing option on the command line: --version
MPlayer 1.1-4.8 (C) 2000-2012 MPlayer Team

(version identique à celle indiquée par @Sneetsher - merci!)

Maintenant, ça marche presque comme avant. Je suppose que le problème est survenu après la mise à niveau vers 14.04 d’une manière ou d’une autre, peut-être parce que, si je ne me trompe pas, je n’avais pas installé explicitement mplayer, mais plutôt simplement "intégré" comme dépendance de smplayer (?) - c'est mon hypothèse jusqu'à présent.

" presque identique à avant " signifie qu'il fonctionne, mais il clignote étrangement tout le temps. Avant d'avoir tous ces problèmes, la photo était claire et nette. Cependant, je suis arrivé à cette solution de contournement: http://andrusiv.com/blog/2010/01/08/mplayer-is-superman-of-mediaplayers.html

Vous devez utiliser le paramètre -really-quiet.

Vous pouvez également vouloir ajuster le format des pixels pour utiliser l’ensemble de l’écran avec le paramètre -monitorpixelaspect X, où X est un nombre avec lequel jouer - essayez 0.7 ou similaire.

Donc, mon utilisation typique finale de mplayer pour rendre la vidéo en ASCII à partir de X est la suivante:

xterm -geometry 269x102 -fn 5x7 -e "mplayer -noautosub -really-quiet -monitorpixelaspect 0.9 -vo aa:driver=curses:contrast=35 *"

En passant, pour lister les polices disponibles sur votre système, vous pouvez lancer xlsfonts

Si vous souhaitez lire des vidéos comme celle-ci en mode texte uniquement (mode mono-utilisateur avec console uniquement, pas de X), vous apprécierez probablement de commencer par définir une police plus petite pour la console. Ce type de solution pourrait vous aider:

setfont /usr/share/consolefonts/Uni1-VGA8.psf.gz

L'utilisation typique de mplayer pour rendre la vidéo dans ASCII à partir d'une console contenant uniquement du texte (pas de X) est la suivante:

defaultfont="/usr/share/consolefonts/Uni2-Fixed16.psf.gz"
font="/usr/share/consolefonts/Uni1-VGA8.psf.gz"
test -e "$font" && setfont "$font" || { echo "ERROR: font \"$font\" could not be set :(" >&2; exit 1; }
mplayer -noautosub -really-quiet -monitorpixelaspect 1 -vo aa:driver=curses:contrast=35 *
test -e "$defaultfont" && setfont "$defaultfont" || { echo "ERROR: supposed default font \"$defaultfont\" could not be set, sorry :(" >&2; exit 1; }

Vous pouvez le combiner en un seul script:

$ cat ~/bin/asciiplay.sh
#!/bin/bash
#play all readable files in current directory with mplayer and render them in ASCII
#crysman (copyleft)2014

#list fonts in X:
#xlsfonts

#list fonts in text-only (TTY) mode:
#ll /usr/share/consolefonts

# we detect text-only mode
textonly=`tty | grep tty | wc -l`

if [ $textonly -ge 1 ]; then
  #Xubuntu 14.04 TTY console default font:
  defaultfont="/usr/share/consolefonts/Uni2-Fixed16.psf.gz"
  #let's set a more appropiate font:
  font="/usr/share/consolefonts/Uni1-VGA8.psf.gz"
  test -e "$font" && setfont "$font" || { echo "ERROR: font \"$font\" could not be set :(" >&2; exit 1; }
  #play it all
  mplayer -noautosub -really-quiet -monitorpixelaspect 1 -vo aa:driver=curses:contrast=35 *
  #revert to default console font:
  test -e "$defaultfont" && setfont "$defaultfont" || { echo "ERROR: supposed default font \"$defaultfont\" could not be set, sorry :(" >&2; exit 1; }
else
  #likely usable fonts:
  #font=-misc-fixed-medium-r-normal--6-60-75-75-c-40-iso8859-1
  #font=-misc-fixed-medium-r-normal--7-50-100-100-c-50-iso8859-1
  font=5x7
  #font=micro
  #geometry optimized for font 5x7 on 1366x768 resolution:
  xterm -geometry 269x102 -fn $font -e "mplayer -noautosub -really-quiet -monitorpixelaspect 0.9 -vo aa:driver=curses:contrast=35 *"
fi;

J'ai créé un bogue du tableau de bord concernant le fait que mplayer2 ne prend pas en charge aa ici: https://bugs.launchpad.net/ubuntu/+source/mplayer2/+bug/13380

Heureux ASCIIing! ;)
McZ

2
crysman

Essayez d'installer sa lib:

Sudo apt-get install libaa1

Eh bien, il semble que vous n’ayez pas la même version disponible à partir du référentiel Ubuntu. Est-ce à partir d’un PPA ou d’un site de projet en amont?

Ceci est une note de sa man:

REMARQUE: Voir l'aide -vo pour une liste des pilotes de sortie vidéo compilés.

La version que vous avez installée n’est pas construite avec le support libaa, voici le mien du référentiel Ubuntu 14.04:

mplayer -vo help

MPlayer 1.1-4.8 (C) 2000-2012 MPlayer Team
Available video output drivers:
    vdpau   VDPAU with X11
    xv  X11/Xv
    gl_nosw OpenGL no software rendering
    x11 X11 ( XImage/Shm )
    xover   General X11 driver for overlay capable video output drivers
    sdl SDL YUV/RGB/BGR renderer (SDL v1.1.7+ only!)
    gl  OpenGL
    gl2 X11 (OpenGL) - multiple textures version
    dga DGA ( Direct Graphic Access V2.0 )
    fbdev   Framebuffer Device
    fbdev2  Framebuffer Device
    svga    SVGAlib
    matrixview  MatrixView (OpenGL)
    aa  AAlib
    caca    libcaca
    v4l2    V4L2 MPEG Video Decoder Output
    directfb    Direct Framebuffer Device
    dfbmga  DirectFB / Matrox G200/G400/G450/G550
    xvidix  X11 (VIDIX)
    cvidix  console VIDIX
    null    Null video output
    xvmc    XVideo Motion Compensation
    mpegpes MPEG-PES to DVB card
    yuv4mpeg    yuv4mpeg output for mjpegtools
    png PNG file
    jpeg    JPEG file
    gif89a  animated GIF output
    tga Targa output
    pnm PPM/PGM/PGMYUV file
    md5sum  md5sum of each frame

La version que j'ai: MPlayer 1.1-4.8 (C) 2000-2012 MPlayer Team
Version que vous avez: MPlayer2 2.0-701-Gd4c5b7f-2ubuntu2 (C) 2000-2012 MPlayer Team

1
user.dz