我刚刚发现我无法使用 aalib 在 mplayer 中渲染视频输出。对于那些不知道的人来说,aalib 是以 ASCII 格式渲染视频。
在升级到 14.04 之前,它运行完美(我不记得设置过任何东西,它已经“开箱即用”了)。
它的作用如下:
$ 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)
它对其他视频也有同样的效果:
... 打开/初始化所选的 video_out (-vo) 设备时出错。...
和
... 视频:没有视频...
以下是一些 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
一些系统信息:
$ 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/"
请问我该如何让它再次工作?:(
或许是因为我放弃了受限制的和多元宇宙?我对此表示怀疑,只是提供信息……
谢谢!!McZ
答案1
好的,看起来问题出在mplayer2
不包含aa
(libaa1
)支持的包中。
我已经尝试过mplayer
(旧的,不是mplayer2
)包并且它有效!
这是我刚刚做的让它发挥作用:
$ sudo apt-get purge smplayer
$ sudo apt-get purge mplayer2
$ sudo apt-get autoremove
$ sudo apt-get install mplayer smplayer
这样我就获得了 mplayer 1.x,特别是 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
(与@Sneetsher 报告的版本相同 - 谢谢!)
现在它几乎又和以前一样工作了。我猜问题出现在升级到 14.04 之后,也许是因为,如果我没记错的话,我没有mplayer
明确安装,而是作为依赖项“发货”的smplayer
(?)——这是我目前的假设。
“和以前差不多“表示它可以运行,但奇怪的是它一直在闪烁。在遇到所有这些麻烦之前,图片是明亮干净的。但是,我找到了这个解决方法: http://andrusiv.com/blog/2010/01/08/mplayer-is-superman-of-mediaplayers.html
您必须使用该-really-quiet
参数。
您可能还想调整像素纵横比以利用整个屏幕,-monitorpixelaspect X
其中X是可以使用的数字 - 尝试0.7或类似的数字。
所以我最后典型的用法是使用 mplayer从 X 以 ASCII 格式渲染视频如下:
xterm -geometry 269x102 -fn 5x7 -e "mplayer -noautosub -really-quiet -monitorpixelaspect 0.9 -vo aa:driver=curses:contrast=35 *"
顺便说一句,要列出系统中可用的字体,你可能需要运行xlsfonts
如果您只想在文本模式下播放这样的视频(仅有控制台的单用户模式,没有X),您可能会希望先设置一些较小的控制台字体,如下所示可能会有所帮助:
setfont /usr/share/consolefonts/Uni1-VGA8.psf.gz
mplayer 的典型用法从纯文本控制台以 ASCII 格式渲染视频(无X)如下:
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; }
您可以将其合并为一个脚本:
$ 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;
我在这里创建了一个与 mplayer2 不支持 aa 有关的启动板错误: https://bugs.launchpad.net/ubuntu/+source/mplayer2/+bug/1338000
快乐 ASCII!;)
McZ
答案2
尝试安装它的库:
sudo apt-get install libaa1
嗯,看来你没有从 Ubuntu 存储库获得相同的版本,它是来自 PPA 还是来自上游项目站点?
这是来自它的一条注释man
:
注意:请参阅 -vo help 以获取编译后的视频输出驱动程序列表。
您安装的版本不支持 libaa,这是我的 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
我拥有的版本: MPlayer 1.1-4.8 (C) 2000-2012 MPlayer Team
您拥有的版本: MPlayer2 2.0-701-gd4c5b7f-2ubuntu2 (C) 2000-2012 MPlayer Team