Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati

Versione 24 del 11/05/2010 20.12.47

Nascondi questo messaggio

BR Indice(depth=2 align=right)

Codifica video per iPod Video

Avidemux

[apt://avidemux-qt Avidemux] è un completo, potente e preciso editor video che consente la conversione di molti formati video ed audio, la loro manipolazione, l'aggiunta di effetti speciali, montaggi ecc..

Con questa applicazione la conversione di un video nel formato accettato da iPod, è una cosa semplicissima.

Per installarlo è sufficiente fare clic sulla scritta [apt://avidemux-qt Avidemux].

Una volta installato per avviarlo è sufficiente fare clic su Applicazioni -> Audio e video -> Avidemux (QT), quindi fare clic sull'icona della cartelletta in alto a sinistra per avviare la ricerca del video, una volta trovato fare clic su apri per importarlo in Avidemux.

A questo punto è sufficiente fare clic sulla scritta Auto, posizionarsi con il mouse su Apple e quindi scegliere il modello di iPod, come indicato in figura:

<BR>

http://img683.imageshack.us/img683/8361/schermataavidemux.png

<BR> Nel popup che si aprirà selezionare la risoluzione (320x240 oppure 640x480), fare clic su OK, quindi fare clic sull'icona del dischetto vicino a quella della cartelletta e specificare dove salvare il nuovo file.

Attendere la fine del processo di conversione.

Questa è una guida alla codifica in un formato video utilizzabile sugli iPod di 5° generazione, cioè gli iPod Video. Questo formato è compatibile anche con gli iPod di 6° generazione, gli iPhone, Apple TV e il riproduttore Quicktime per iTunes.I seguenti metodi sono stati testati con successo su varie versioni di Ubuntu. È richiesta l'aggiunta di nuovi archivi, mu (per Ubuntu Feisty o più recenti) oppure la ricompilazione del ffmpeg di sistema per versioni antecedenti Feisty, si ricorda anche che le modifiche al sistema contenute in questa guida non sono ufficialmente supportate da Canonical.

Se sono necessarie ulteriori informazioni, consultare accuratamente la pagina iPod Video wiki page, così come Guide to Transferring Video to the iPod Video.

Siccome per la codifica dei video nel formato richiesto da iPod Video è necessaria la ricompilazione di ffmpeg, in modo che abbia la dovuta configurazione, in questa guida verrà spiegato come compilare, installare ed utilizzare ffmpeg correttamente.

Comunque è anche possibile scegliere uno strumento che faccia tutto ciò automaticamente. Eccone alcuni esempi:

Metodo mvPod (GUI su mencoder)

Questo nuovo metodo consente di convertire facilmente qualsiasi video in un formato iPod compatibile. Utilizzando la popolare applicazione mencoder per codificare e visualizzare tutte le informazioni, mvPod vuole essere un punto di riferimento per una facile codifica video.

Alcune caratteristiche di mvPod.

  • Facile selezione del video da convertire e del file prodotto.
  • Facile selezione dele opzioni di codifica con profili predefiniti.
    • iPod H264
    • iPod Xvid
  • Selezione del flusso audio quando si codificano DVD o file video.
  • Fornisce dettagliate informazioni sui video da convertire.
  • Anteprima dei video.
  • Gestisce video multipli (processo Batch).
  • Cidifica diretta dei DVD video.
  • Selezione della risoluzione del video (640x480, 320x240).
  • Possibilità di cambiare il bitrate audio e video.

[http://mvpod.sourceforge.net/ Sito web ufficiale di mvPod]

Per l'esecuzione di questo programma è necessario installare le librerie [apt://gpac gpac]:

sudo aptitude install gpac

Metodo di Mark Pilgrim basato su mencoder

Questo script al contrario di altri, non usa ffmpeg, consentendo così di bypassare la problematica degli altri metodi che richiedono l'aggiunta di nuovi repository o addirittura la ricompilazione di ffmpeg. mencoder garantisce anche migliori risultati con formati proprietari quali WMV, Real Video, ed altri avantaggiandosi dell'uso di w32codecs. Come pypodconv, illustrato più avanti, consente di usare il codec video ad alta qualità H.264.

sudo aptitude install lsdvd mplayer gpac zenity mencoder
sudo wget http://diveintomark.org/public/2007/06/podencoder.txt -O /usr/local/bin/podencoder
sudo chmod +x /usr/local/bin/podencoder
podencoder foo.mpg
podencoder foo.avi
podencoder foo.wmv
podencoder
podencoder --help

Compilazione di ffmpeg su Ubuntu

A partire dalla versione di Ubuntu 7.04 Feisty Fawn, ffmpeg nel repository Medibuntu contiene un ffmpeg "sbloccato". Abilitare il repository [http://wiki.ubuntu-it.org/Repository/NonUfficiali/Medibuntu Medibuntu] e saltare la seguente sezione.

Gli utenti di Edgy o Dapper, devono seguire queste istruzioni:

A causa di una litania di questioni legali, ffmpeg non viene fornito con tutti gli strumenti necessari alla codifica video per iPod Video. Ciò rende necessaria la compilazione da sorgente e l'installazione di altre librerie e programmi. Assicurarsi di avere abilitato i repository multiverse ed universe. Ci scusiamo se questa procedura necessaria può sembrare intimidatoria. Io, (johnDong) sto attualmente lavorando con Medibuntu per avere nel repository un pacchetto pronto all'uso da installare tramite APT.

Nel terminale, eseguire:

sudo apt-get build-dep ffmpeg
sudo apt-get install ffmpeg
sudo apt-get install liblame-dev libfaad2-dev libfaac-dev libxvidcore4-dev liba52-0.7.4 liba52-0.7.4-dev libx264-dev

Solamente per architetture a 64-bit (AMD64): È necessario forzare ffmpeg a linkare contro la versione PIC di ffmpeg. Lanciare il seguente comando:

sudo cp /usr/lib/libx264_pic.a /usr/lib/libx264.a

Per tutte le architetture: continuare con i seguente comandi:

apt-get source ffmpeg
cd ffmpeg-*/
./configure --enable-gpl --enable-pp --enable-pthreads \
        --enable-libogg --enable-a52 --enable-dts \
        --enable-dc1394 --enable-libgsm --disable-debug --enable-mp3lame \
        --enable-faad --enable-faac --enable-xvid --enable-x264
make
sudo make install

Se si sta usando il sorgente di FFMPEG preleveto dai repository di Edgy, saltare il resto di questo blocco di istruzioni.
Se si sta usando il sorgente di FFMPEG preleveto da un recente SVN (20070331), le opzioni di configurazione sono cambiate. Utilizzare queste linee in sostituzione delle precedenti e continuare con il comando make:

./configure --enable-gpl --enable-pp --enable-pthreads \
        --enable-libogg --enable-liba52 --enable-libdts \
        --enable-dc1394 --enable-libgsm --disable-debug --enable-libmp3lame \
        --enable-libfaad --enable-libfaac --enable-xvid --enable-x264 

L'installazione di ffmpeg prima del lancio di sudo make install consente una minor intrusività come checkinstall dato che sovrascriverà solamente i file posseduti da ffmpeg senza modificare il modo in cui la struttura del pacchetto è registrata in dpkg.

Solamente per architetture a 64-bit (AMD64): Ripristinare la modifica fatta in precedenza sul sistema:

sudo apt-get install --reinstall libx264-dev

Script 1: pypodconv

Questo nuovo script in python (03/2007) contiene tutte le funzionalità sottocitate. Per il suo corretto funzionamento sono richesti ffmpeg e [apt://gpac gpac]. Senza il pacchetto gpac la codifica fallirà esattamente al termine, vanificando così ore di lavoro. Di seguito viene proposta una "schermata":

jdong@severance:~/src/pypodconv$ pypodconv
Usage: pypodconv [options]

Options:
  -h, --help            show this help message and exit
  -i INPUT, --input=INPUT
                        Source file to encode
  --sd, --320, --standard-definition
                        Encode to Standard Definition (that is, 320xNNN,
                        native iPod screen resolution) [DEFAULT]
  --hd, --640, --high-definition
                        Encode to High Definition (that is, 640xNNN, maximum
                        iPod-supported resolution
  -c CODEC, --codec=CODEC
                        Video Codec: h264 [DEFAULT], xvid, or mpeg4.
  -o OUTPUT, --output=OUTPUT
                        Output file, with file extension.
  -b VBITRATE, --vbitrate=VBITRATE
                        Video Bitrate, in kbit/s. (default: 200)
  -p PASSES, --passes=PASSES
                        Number of passes. (Default: 2)

Per l'installazione, scaricare [http://web.mit.edu/~jdong/www/pypodconv/pypodconv pypodconv], salvarlo nella directory /tmp ed eseguire nel terminale:

sudo apt-get install gpac
sudo mv /tmp/pypodconv /usr/local/bin/pypodconv
sudo chmod +x /usr/local/bin/pypodconv

Per Gutsy e ffmpeg SVN, utilizzare [http://web.mit.edu/~jdong/www/pypodconv.ffmpegsvn/pypodconv questo pypodconv].

L'operazione basilare è::

pypodconv -i INPUT_FILE -o OUTPUT_FILE

Questo, in maniera predefinita, creerà un vodeo 200kbit/s 320xNNN 2-pass H.264, adatto alla visualizzazione su iPod. La stampata di help è utile per la configurazione di altri metodi dì utilizzo. Per esempio se si vuole una codifica ad alta definizione da 500Kbit/s:

pypodconv -i INPUT_FILE -o OUTPUT_FILE --hd -b 500

Script 2: ipodvidenc

Un'altro script per la conversione dei video in formato iPod Video. In un terminale digitare:

gedit

Si aprirà un nuovo documento nel quale copiare il seguente codice:

## ipodvidenc - The iPod Video Encoder for Linux.
## Created by Eric Hewitt, January 9, 2006.
## Released under the GPL.  Go nuts.

input_file=$1

echo "Inserire il nome del file codificato (senza estensione) "

read output_file_name

echo "$output_file_name sarà salvato in $PWD. Proseguire? [y/n]"

read output_file_loc_permis

if [ $output_file_loc_permis = 'n' ] || [ $output_file_loc_permis = 'N' ]
then
        echo "Indicare dove salvare $output_file_name.mov:"
        read output_dir
else
        output_dir=$PWD
fi

ffmpeg -i ${input_file} -f mp4 -vcodec mpeg4 -maxrate 1000k -b 700k -qmin 3 -qmax 5 -bufsize 4096k -g 300 -acodec aac -ab 192k -s 320x240 -aspect 4:3 ${output_dir}/${output_file_name}.mov

Salvarlo, ad esempio, nella cartella Home con il nome ipodvidenc, quindi nel terminale, eseguire:

chmod 755 ipodvidenc
sudo mv ipodvidenc /usr/bin

Quindi per convertire il video in un formato valido per iPod Video, eseguire il comando:

ipodvidenc video.avi

Dopo alcune domande, inizierà la codifica e restituirà il file nel formato corretto.

Questo metodo funziona anche con file .vob grezzi, il che significa che non è necessaria la transcodifica dei DVD.

Un'alternativa con interfaccia grafica - thinliquidfilm

Se si preferisce usare una gui per la codifica video, è possibile usare thinliquidfilm. thinliquidfilm è una interfaccia grafica per ffmpeg, specificamente concepita per la codifica di video in formato compatibile con iPod Video. È possibile scaricarla [http://thinliquidfilm.org qui]. È richiesto ffmpeg compilato come precedentemente descritto e [apt://python-qt3 python-qt3] se si sta usando Gnome, altrimenti pyqt che viene installato come parte del pacchetto kubuntu-desktop, [apt://python-gpod python-gpod] per il caricamento sull'iPod (vedere Guide to Transferring Video to the iPod Video per maggiori dettagli) e [apt://mplayer mplayer] per vedere l'anteprima del video in conversione.

Caratteristiche di [http://thinliquidfilm.org thinliquidfilm]:

  • Processo Batch per qualsiasi numero di file;
  • Visualizzazione di informazioni dettagliate sul video sorgente;
  • Cambio delle impostazioni di produzione per uno o più file;
  • Salvataggio delle impostazioni predefinite per future sessioni;
  • Impostazioni della qualità del file prodotto;
  • Scelta tra mpeg4 e h264 quale codec per il video da produrre;
  • Scelta fra 320 e 640 quale ampiezza del video da produrre, mantenedo però la stessa proporzione altezza/larghezza;
  • Scelta tra 1 o 2 passaggi di codifica;
  • Anteprima del risultato prima della codifica;
  • Barra progresso che visualizza lo stato della codifica;
  • Utilizzo di ffmpeg quale motore di codifica;
  • Caricamento diretto dei file codificati sull'iPod;
  • Impostazione del file informativo per il caricamento sull'iPod;
  • Aggiunta di file ad una nuova o preesistente scaletta sull'iPod;
  • Aggiunta di video precodificati alla lista dei trasferimenti sull'iPod;
  • Aggiunta di file da codificare tramite l'incluso menu di servizio.

L'installazione è molto semplice, basta utilizzare l'allegato script d'installazione. Sul [http://thinliquidfilm.org sito web] è reperibile la documentazione sull'installazione e l'utilizzo di thinliquidfilm.

Utilizzo di ffmpeg

Se si necessita di un maggior controllo di quello offerto da ipodvidenc o thinliquidfilm gives, é possibile usare il comando di ffmpeg, dovutamente impostato:

ffmpeg -i input_file.avi -f mp4 -vcodec mpeg4 -maxrate 1000k -b 700k -qmin 3 -qmax 5 -bufsize 4096 -g 300 -acodec libfaac -ab 192k -s 320x240 -aspect 4:3 output_file.mov

Il risultato è il formato video a 700kbit MPEG-4 ASP (es. "xvid") utilizzando la codifica mpeg4 di ffmpeg. In alternativa è possibile usare il codec xvid che fornisce una compressione lievemente migliore, per lo stesso bitrate, del succitato comando ma è leggermente più lento. per fare ciò basta sostituire mpeg4 con xvid. A partire dal Firmware 1.2, è possibile innalzare -maxrate e -b a 2500, e la risoluzione a(-s) a 640x480. È anche necessario innalzare il bitrate a 1000 Kbit/s per ottenere una buona resa del video mpeg4-ASP in formato 640x480.

Codifica H.264

H.264 (MPEG-4 AVC) è un nuovo codec supportato da iPod. È in grado di rendere una qualità simile a quella di MPEG4-ASP con la metà del bitrate. Comunque è estremamente lento ed impegna molto la CPU, ed il risultato sarà un file 5 volte più grande di un mpeg4 o di un xvid. È anche necessario che ffmpeg sia stato compilato con il supporto per x264.

Data l'enorme velocità di scambi, è molto più pratico il suo utilizzo per file ad alta definizione destinati ad un uso su TV o computer. Questo è il comando per ottenere una codifica a 500kbit 640x480 H.264:

ffmpeg -y -i input_file.avi -an -v 1 -threads auto -vcodec h264 -b 500 -bt 175 -refs 1 -loop 1 -deblockalpha 0 -deblockbeta 0 -parti4x4 1 -partp8x8 1 -me full -subq 1 -me_range 21 -chroma 1 -slice 2 -max_b_frames 0 -level 30 -g 300 -keyint_min 30 -sc_threshold 40 -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.7 -qmax 51 -max_qdiff 4 -i_quant_factor 0.71428572 -rc_max_rate 768 -rc_buffer_size 244 -cmp 1 -s 640x480 -f mp4 -pass 1 /dev/null

ffmpeg -y -i input_file.avi -v 1 -threads auto -vcodec h264 -b 500 -bt 175 -refs 1 -loop 1 -deblockalpha 0 -deblockbeta 0 -parti4x4 1 -partp8x8 1 -me full -subq 6 -me_range 21 -chroma 1 -slice 2 -max_b_frames 0 -level 30 -g 300 -keyint_min 30 -sc_threshold 40 -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.7 -qmax 51 -max_qdiff 4 -i_quant_factor 0.71428572 -rc_max_rate 768 -rc_buffer_size 244 -cmp 1 -s 640x480 -acodec aac -ab 96 -ar 48000 -ac 2 -f mp4 -pass 2 output_file.mp4

Siccome iPod non supporta appieno H.264, il comando per codificare un file è molto più cpmplesso. Bisogna impostare i controlli del bitrate (-b indica il bitrate medio, -rc_max_rate indica il massimo picco istantaneo del bitrate). L' iPod supporta più di 1500kbit. È da tenere in considerazione che questa è una codifica a due passaggi, il che significa un più accurato controllo del bitrate e di conseguenza una miglior qualità, ma il tempo necessario per la codifica sarà ovviamente il doppio rispetto ad un singolo passaggio. Il risultante file mp4 avrà una resa migliore sia su iPod, TV o schermo 1280x800 del laptop.

Se non si è interessati alla riproduzione del video mp4 su TV o computer, è possibile usare H264 per ottenere codifiche 320x240, basta semplicemente sostituire 640x480 con 320x240. È anche possibile ridurre il bitrate medio (-b) a 175Kbit/s senza intaccare la qualità, che resterà sopportabile fino a valori prossimi ai 130Kbit/s. Ciò è impossibile con xvid.

Immagine(Icone/Piccole/note.png,,center)

A partire da Dicembre 2006 nella versione SVN di ffmpeg sono state rinominate molte opzioni, alcune delle quali ora utilizzano bits/s invece che kilobits. Il comando seguente è uguale al precedente tranne per il fatto che è stato modificato per funzionare con la nuova verdsione di SVN:

ffmpeg -y -i input_file.avi -an -v 1 -threads auto -vcodec h264 -b 500k -bt 175k -refs 1 -loop 1 -deblockalpha 0 -deblockbeta 0 -parti4x4 1 -partp8x8 1 -me full -subq 1 -me_range 21 -chroma 1 -slice 2 -bf 0 -level 30 -g 300 -keyint_min 30 -sc_threshold 40 -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.7 -qmax 51 -qdiff 4 -i_qfactor 0.71428572 -maxrate 768k -bufsize 2M -cmp 1 -s 640x480 -f mp4 -pass 1 /dev/null

ffmpeg -y -i input_file.avi -v 1 -threads auto -vcodec h264 -b 500k -bt 175k -refs 1 -loop 1 -deblockalpha 0 -deblockbeta 0 -parti4x4 1 -partp8x8 1 -me full -subq 6 -me_range 21 -chroma 1 -slice 2 -bf 0 -level 30 -g 300 -keyint_min 30 -sc_threshold 40 -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.7 -qmax 51 -qdiff 4 -i_qfactor 0.71428572 -maxrate 768k -bufsize 2M -cmp 1 -s 640x480 -acodec aac -ab 96 -ar 48000 -ac 2 -f mp4 -pass 2 output_file.mp4

Codifica da una sorgente DVD

As mentioned, ffmpeg is able to take .VOB files from the video_ts directory of a dvd as a source. However, VOBs are usually split arbitrarily into 1GB pieces, sometimes even two titles are mixed together in one VOB, making it very inconvenient to use this method of encoding.

However, our good friend mplayer will come to the rescue. By instructing mplayer to play a particular title, you can dump the complete vob for that title directly to the hard disk. You will need mplayer installed (also from Multiverse)

mplayer dvd://1 -dumpstream -dumpfile dump.vob

This will output the first title of your DVD to dump.vob, which you can then give to ffmpeg as the input. Note that mplayer doesn't generate any progress indication and will appear to 'hang' during this process. Please be patient! If you are familiar with mplayer, you can fine-tune that command to dump a particular chapter, range of chapters, or many other modifications, too.

An alternate method is to do an ordinary DVD rip to an AVI or other format using your favorite DVD ripping tool, then feed that output to ffmpeg. The benefit to this approach is that there are many nice DVD-ripping GUI's to choose title/chapters, audio streams, cropping, and so on. The downsides are that you will suffer a slightly degraded quality and you have to wait for the dvd to rip to AVI format before being able to use ffmpeg to convert it to MP4.

Widescreen Resolutions

Your iPod supports a maximum of 640x480 or 320x240, but anything in that's below those specs would work. For widescreen, just adjust that ratio so that the width <= 640 and height <= 480. It's advisable to keep both dimensions a multiple of 16, else the encoder will not compress as efficiently.

Black Screen or iPod Resets When Trying to Play Video

The mp4's that ffmpeg generates are slightly nonstandard. Firmware 1.1 iPods had severe issues playing them back, typically marked by audio suddenly disappearing 15 seconds into the video. Firmware 1.2 fixes these issues, so for the large part ffmpeg's mp4's work perfectly on the iPod. However, on short clips encoded in h.264, the iPod still may show a black screen, freeze, or reset when trying to play it.

The pypodconv script already performs this workaround listed below. If you are using the pypodconv script, you should not encounter this issue

The solution is to use MP4Box to repack the mp4. You will need gpac installed from Multiverse:

MP4Box -add original.mp4 fixed.mp4

This repacks original.mp4 into fixed.mp4. After this is done, you may remove original.mp4. You may have seen some guides suggesting to -add original directly to original, and that'll pack it "in place". This is WRONG. It will just give you a double-sized mp4 file that still won't play on the iPod!

Since for larger video files, the repacking procedure could be quite time consuming, it's a good practice not to do it except for the rare portion of files that fail without repacking.

iTunes complains about these files, but GtkPod transfers them and the iPod plays fine

2007-11-20: There is now a fix for this issue. Upgrade to the latest gpac in Hardy (0.4.4) or soon to be in Gutsy Backports, then download the newest pypodconv.ffmpegsvn branch linked in the instructions. This allows MP4Box to output the iPod MP4 header.

This phenomenon mostly happens with the 640x480 H.264 encodes. iTunes expects to find a QuickTime-specific MP4 header and rejects the results from any other encoder. However, when the MP4's are transferred onto the iPod with another program (i.e. GtkPod), the iPod plays them back without a hitch.

This is a known issue, and there's been some patches and discussion over at the ffmpeg mailing list. If you're interested in learning more about this, see: http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2006-September/045391.html

MythTV Recordings

You can export your MythTV recordings to h.264 or mpeg4 compatable video files using MythExport.


CategoryHomepage CategoryInTraduzione