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.
# 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
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
Opciones → Descargas → Ejecutar programa externo:
"/home/TU_USUARIO/.config/qbittorrent/post_download.sh" "%F"
Reiniciar qBittorrent.
# 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
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
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
Si querés biblioteca permanente con metadatos:
sudo pacman -S jellyfin
sudo systemctl enable --now jellyfin
# http://localhost:8096
# 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