L'altre dia ens van deixar un televisor, pel que hem comprat un decodificador de TDT (Sansui DVB025 per 35€). Aquest té USB Host i podem connectar-hi un dispositiu USB-Storage, i n'entén les particions FAT.

Pot gravar-hi el que li diem de la TDT (programat amb temps si cal - 2h de pel·lícula del canal 8tv hi han ocupat 6GB en MPEG2), i a més reprodueix videos en el contenidor AVI i codificació d'imatge XVID i de so MP3 o MPEG4 AAC.

Amb l'ffmpeg, he vist que només reprodueix el que codifico amb la llibreria libxvid, i no pas res fet amb mpeg4 o msmpeg4. De fet, tot i que reprodueix MPEG2 (és el que grava), aquest només el reprodueix en el contenidor MPG.

Com que m'agrada veure programes que han emès per TV3 (per exemple, Singulars), vull utilitzar el servei de 3 a la carta per a veure'n els videos amb l'aparell Sansui DVB025.

Veient que TV3 dóna els seus videos amb RTMP, buscant una mica vaig trobar el programa rtmpdump que em permet estirar en forma d'AVI (codificats amb h264 a 15fps) el de 3 a la carta. Vaig necessitar una mica d'anàlisi de la comunicació HTTP amb el Wireshark per veure com puc transformar la URL del navegador al mirar un video, a una adreça RTMP.

Al final m'he acabat fent aquest script, que em baixa un video donada una URL de 3 a la carta, i me'l passa a video XVID de 500kbps amb l'ffmpeg, tot perfecte per posar-lo a un disc dur amb interfície USB que connecto al Sansui. Li he dit gettv3:

#!/bin/sh

ID=`echo "$1" | sed -e 's,.*/\([0-9]*\)/\?.*$,\1,' `
if [ -n "$2" ]; then
    FILE="$2"
else
    FILE=`echo "$1" | sed 's|.*/\([^/]*\)$|\1|'`.avi
fi

URL=`wget -O - 'http://www.tv3.cat/su/tvc/tvcConditionalAccess.jsp?ID='$ID'&QUALITY=H&FORMAT=MP4&rnd='$RANDOM | grep rtmp | sed 's/.*\(rtmp:[^<]*\).*/\1/' `

rtmpdump  -r "$URL" | ffmpeg -i - -b 500000 -vcodec libxvid -acodec copy "$FILE"
Add a comment