Fix Seeking Lento en Chromecast con Arch Linux

Problema

MP4 descargados por torrent tienen el índice de seek (moov atom) al final del archivo. El Chromecast no puede saltar instantáneamente; lee todo el archivo hasta encontrar el índice.

Solución Rápida: ffmpeg

# Instalar ffmpeg
sudo pacman -S ffmpeg

# Arreglar una película (sin re-encodear, solo mueve el índice al frente)
ffmpeg -i pelicula.mp4 -c copy -movflags faststart pelicula_fixed.mp4

# Sobrescribir el original
ffmpeg -i pelicula.mp4 -c copy -movflags faststart /tmp/temp.mp4 && mv /tmp/temp.mp4 pelicula.mp4

Automatización con qBittorrent

1. Script post-descarga

Crear ~/.config/qbittorrent/post_download.sh:

#!/bin/bash
# $1 = ruta del archivo descargado

FILE="$1"
EXT="${FILE##*.}"

if [[ "$EXT" == "mp4" || "$EXT" == "mkv" || "$EXT" == "avi" ]]; then
    TMP="${FILE}.tmp"
    ffmpeg -i "$FILE" -c copy -movflags faststart "$TMP" && mv "$TMP" "$FILE"
fi
chmod +x ~/.config/qbittorrent/post_download.sh

2. Configurar qBittorrent

Opciones → Descargas → Ejecutar programa externo:

"/home/TU_USUARIO/.config/qbittorrent/post_download.sh" "%F"

Reiniciar qBittorrent.

Transmitir a la TV

Con catt

# Instalar
yay -S catt

# Castear
 catt cast pelicula_fixed.mp4

# Controles
 catt pause
 catt play
 catt seek 3600    # saltar a 1 hora (en segundos)
 catt stop

Con VLC headless

vlc pelicula.mp4 --sout '#standard{access=http,mux=ts,dst=:8080}' --intf dummy --extraintf http

# En el Chromecast/Smart TV abrir: http://IP_DE_TU_PC:8080

Alternativa Ultra-Ligera: minidlna

Si no querés tocar los archivos:

sudo pacman -S minidlna

# Configurar
sudo tee /etc/minidlna.conf << 'EOF'
media_dir=V,/home/TU_USUARIO/Videos
friendly_name=ArchLinuxDLNA
inotify=yes
EOF

# Iniciar
sudo systemctl enable --now minidlna

# La TV lo detecta automáticamente en "Fuentes de Red" / DLNA

Alternativa Completa: Jellyfin

Si querés biblioteca permanente con metadatos:

sudo pacman -S jellyfin
sudo systemctl enable --now jellyfin
# http://localhost:8096

Checklist Rápido

# Verificar si un MP4 tiene el moov atom al final (si tarda, está mal)
ffprobe -v error -show_format -show_streams pelicula.mp4 | grep -i moov

# Arreglar
ffmpeg -i input.mp4 -c copy -movflags faststart output.mp4

# Castear
 catt cast output.mp4