Mirar videos en el frambuffer de Linux: Fbff
Podes pedirle a opencode que cambie los colores de la terminal.
snd_pcm_oss es un antiguo audio antes que alsa
[esotericwarfare@arch ~]$ sudo modprobe snd_pcm_oss
Este comando te crea los archivos /dev/dsp y /dev/audio archivos de dispositivo que fbff usa.
Ejecutá esto para que sea un cambio permanente.
$ echo "snd_pcm_oss" | sudo tee /etc/modules-load.d/snd_pcm_oss.conf
fbff en Arch Linux: Solución al error de compilación
Problema
Al intentar instalar fbff-git desde el AUR con yay, la compilación falla con este error:
ffs.c:93:17: error: implicit declaration of function 'avcodec_close'
Causa
El código de fbff usa la función avcodec_close(), que fue deprecada y eliminada en versiones recientes de FFmpeg. La función moderna es avcodec_free_context().
Solución
Opción 1: Instalar manualmente con parche
-
Instalar dependencias:
yay -S ffmpeg git base-devel -
Descargar el PKGBUILD y extraer:
yay -G fbff-git cd fbff-git -
Editar el PKGBUILD y agregar el parche en la sección
build():build(){ cd "$srcdir/$pkgname" sed -i 's/avcodec_close(ffs->cc)/avcodec_free_context(\&ffs->cc)/' ffs.c make } -
Compilar e instalar:
makepkg -si
Opción 2: Usar mpv (recomendado)
Si solo necesitás reproducir video en el framebuffer, mpv (del repositorio oficial) ya soporta DRM:
# Video con audio
mpv --vo=drm video.mkv
# Video sin audio
mpv --vo=drm --no-audio video.mkv
# Con aceleración de hardware (menos uso de CPU)
mpv --vo=drm --hwdec=auto video.mkv
Uso de fbff
Una vez instalado:
# Reproducir con sincronización básica
fbff -u -s video.mkv
# Silenciar audio (requiere /dev/dsp de OSS)
fbff -u -s -a - video.mkv
# Ajustar sincronización si el video es muy rápido
fbff -u -s100 -a - video.mkv
Notas
fbffdecodifica en CPU purompv --vo=drmsoporta aceleración de hardware (VA-API, VDPAU)- El proyecto
fbffestá abandonado, puede tener más problemas de compatibilidad con FFmpeg futuro
fbff en Arch Linux: Solución completa al error de compilación
El Problema
Al intentar instalar fbff-git desde el AUR con yay:
yay -S fbff-git
La compilación fallaba con este error:
ffs.c:93:17: error: implicit declaration of function 'avcodec_close'
^~~~~~~~~~~~~
make: *** [Makefile:9: ffs.o] Error 1
Diagnóstico
El error indica que la función avcodec_close() no existe. Esto es porque:
-
FFmpeg actualizó su API - La función
avcodec_close()fue deprecada en 2014 y eliminada en versiones recientes de FFmpeg. -
La función moderna es
avcodec_free_context()- Esta es la forma correcta de liberar un contexto de codec.
Solución Paso a Paso
Paso 1: Descargar el PKGBUILD
yay -G fbff-git
cd fbff-git
Esto descarga el PKGBUILD pero no compila.
Paso 2: Editar el PKGBUILD
nano PKGBUILD
Buscar la sección build() y modificarla:
Antes:
build(){
cd "$srcdir/$pkgname"
make
}
Después:
build(){
cd "$srcdir/$pkgname"
sed -i 's/avcodec_close(ffs->cc)/avcodec_free_context(\&ffs->cc)/' ffs.c
make
}
Paso 3: Compilar e instalar
makepkg -si
O si ya tenés el paquete en el cache:
makepkg
sudo pacman -U fbff-git-*.pkg.tar.zst --noconfirm
Explicación del parche
El comando sed hace lo siguiente:
s/avcodec_close(ffs->cc)/avcodec_free_context(\&ffs->cc)/
| Original | Reemplazo |
|---|---|
avcodec_close(ffs->cc) |
avcodec_free_context(&ffs->cc) |
¿Por qué \\&? En sed, & significa “todo lo que matcheaste”. Para escribir literalmente & en el reemplazo, hay que escaparlo como \&.
El archivo ffs.c modificado
El cambio ocurre en la función ffs_free():
Antes (línea 93):
if (ffs->cc)
avcodec_close(ffs->cc);
Después:
if (ffs->cc)
avcodec_free_context(&ffs->cc);
Solución alternativa: Modificar el código fuente directamente
En lugar de modificar el PKGBUILD, podés clonar el repo, parchearlo, y compilar manualmente:
# Clonar el repo
git clone https://repo.or.cz/fbff.git
cd fbff
# Aplicar el parche
sed -i 's/avcodec_close(ffs->cc)/avcodec_free_context(\&ffs->cc)/' ffs.c
# Compilar
make
# Instalar
sudo cp fbff /usr/local/bin/
Verificar la instalación
fbff --help
Debería mostrar:
usage: fbff [options] file
Uso básico
# Reproducir video
fbff video.mkv
# Con sincronización
fbff -u -s video.mkv
# Solo audio
fbff -v - video.mkv
# Escalar a 50%
fbff -z 0.5 video.mkv
# Posicionar en pantalla
fbff -x 100 -y 50 video.mkv
Nota importante
El proyecto fbff está abandonado. El autor original (Ali Gholami) no actualiza el código hace años. Este parche funciona con FFmpeg actual, pero futuras actualizaciones de FFmpeg podrían romper la compatibilidad nuevamente.
Créditos
- Autor original: Ali Gholami
- PKGBUILD AUR: aksr
- Parche documentado: opencode
Imágenes
- fbi - Visor de imágenes (el que usás)
- fim - Visor avanzado con soporte de zoom, pan, rotación
Video
- fbff - El que arreglamos (ffmpeg-based)
- mplayer - Con -vo fbdev2 o -vo drm
- mpv - Con –vo=drm (recomendado, soporta hardware decode)
- fbpdf - PDF básico
- pandoc + fbterm - Convertir a texto
Texto
- fbterm - Terminal en framebuffer
- freetype-fonts + rendering
Audio
- mpd + ncmpcpp - Sin X
Captura
- fbgrab / fbgrab - Screenshots del framebuffer
- ffmpeg -f fbdev - Grabar desktop (ya lo usás)
Juegos
- nethack - En framebuffer
- cava - Visualizer de audio
Extras
- libcaca - Arte ASCII (los antiguos caca viewers)
- mupdf - Con salida framebuffer
yay -S fim fbpdf fbgrab