Differenze tra le versioni di "Conversioni video"
(19 versioni intermedie di 10 utenti non mostrate) | |||
Riga 3: | Riga 3: | ||
"Alex.u - alessandro.ugolini@autistici.org" | "Alex.u - alessandro.ugolini@autistici.org" | ||
− | ; Ingredienti: | + | ; Ingredienti: Mplayer, Mencoder, Transcode, lsdvd, dvdauthor, libdvdcss, Lame, Mjpegtools, image magick, ffmpeg, sox, gimp, lsdvd, toolame, vcdimager,(minimo indispensabile). |
Per l'installazione degli <sup>ingredienti</sup> si utilizzano i vari gestori di pacchetti presenti in tutte le distro; per una personalizzazione e un eccellente rendimento e' preferibile <sub>compilare</sub> il tutto (cosa non da poco:->)." | Per l'installazione degli <sup>ingredienti</sup> si utilizzano i vari gestori di pacchetti presenti in tutte le distro; per una personalizzazione e un eccellente rendimento e' preferibile <sub>compilare</sub> il tutto (cosa non da poco:->)." | ||
Riga 358: | Riga 358: | ||
l'opzione -ss 00:10 dice di iniziare la lettura dopo 10 minuti, -endpos dice di fermarsi dopo 1 minuto di lettura il risultato e' una anteprima di un minuto 10 minuti dopo l'inizio del film. | l'opzione -ss 00:10 dice di iniziare la lettura dopo 10 minuti, -endpos dice di fermarsi dopo 1 minuto di lettura il risultato e' una anteprima di un minuto 10 minuti dopo l'inizio del film. | ||
− | === Manipolare | + | === Manipolare file video === |
− | ==== | + | ==== Tagliare in due parti un file avi ==== |
Nel pacchetto transcode sono presenti numerosi eseguibili per la modifica degli avi. Cio' non toglie che si possa usare mencoder. Cmq per spezzare un file avi si usa avisplit: | Nel pacchetto transcode sono presenti numerosi eseguibili per la modifica degli avi. Cio' non toglie che si possa usare mencoder. Cmq per spezzare un file avi si usa avisplit: | ||
− | + | $ avisplit -s 700 -i film.avi | |
− | $ avisplit -s 700 -i film.avi | ||
spezza l'avi in file da 700 Mb | spezza l'avi in file da 700 Mb | ||
− | + | $ avisplit -i film.avi -c -o out.avi -t 00:10:00-00:11:00,00:13:00-00:14:00 | |
− | $ avisplit -i film.avi -c -o out.avi -t 00:10:00-00:11:00,00:13:00-00:14:00 | ||
spezza e unisce l'avi dal decimo all'undicesimo minuto e lo incolla (-c) con il pezzo dal tredicesimo al quattordicesimo | spezza e unisce l'avi dal decimo all'undicesimo minuto e lo incolla (-c) con il pezzo dal tredicesimo al quattordicesimo | ||
− | ==== | + | ==== Incollare due avi ==== |
avimerge e' l'ideale | avimerge e' l'ideale | ||
+ | $ avimerge -o filmone.avi -i film1.avi film2.avi film3.avi | ||
− | $ avimerge -o | + | oppure incollare una traccia audio |
+ | $ avimerge -o filmconaudio.avi -i film.avi -p audio2.avi -a 1 | ||
− | |||
− | + | ==== Unire video NON avi ==== | |
− | + | $ mencoder video_divisi_00* -o ../video_completo.mpg -oac copy -ovc copy | |
− | $ transcode -i song.mp3 -x null,mp3 -g 0x0 -y raw -a 1 -o audio2.avi -u 50 | + | ==== Creare audio2.mpa da un mp3 e' un buona idea ... ==== |
+ | $ transcode -i song.mp3 -x null,mp3 -g 0x0 -y raw -a 1 -o audio2.avi -u 50 | ||
− | ==== | + | ==== Risincronizzare audio e video ==== |
usando avisync | usando avisync | ||
− | + | $ avisync -i fim.avi -o out.avi -n -10 | |
− | $ avisync -i fim.avi -o out.avi -n -10 | ||
ritarda l'audio di 10 frames | ritarda l'audio di 10 frames | ||
Riga 396: | Riga 395: | ||
I risultati migliori li ho ottenuti con mencoder | I risultati migliori li ho ottenuti con mencoder | ||
+ | $ mencoder film.avi -ovc copy -aoc copy --forceidx -o indicecorretto.avi | ||
+ | |||
+ | |||
+ | ==== Codificare un vecchio video in un nuovo formato ==== | ||
+ | |||
+ | Per salvare spazio su disco può essere utile ricodificare vecchi video con codec moderni es. h264 per il video e faac per l'audio. | ||
+ | |||
+ | ffmpeg -i vecchio_video.avi -acodec libfaac -ab 96k -vcodec libx264 -b:v 600k -threads 2 nuovo_video.mp4 | ||
− | + | In caso di errore assicuratevi che la vostra versione di ffmpeg sia stata compilata col supporto per h264 e faac, altrimenti il pacchetto andrà ricompilato aggiungendo queste opzioni al ./configure: | |
+ | --enable-libx264 \ | ||
+ | --enable-nonfree \ | ||
+ | --enable-libfaac \ | ||
==== Scrivere su un file di testo l'header di un avi ==== | ==== Scrivere su un file di testo l'header di un avi ==== | ||
Riga 409: | Riga 419: | ||
Nel caso si voglia duplicare un dvd5 con una copia 1:1, si puo' benissimo usare un programma di masterizzazione come k3b e fare un copia incolla da dvd sorgente a dvd destinazione, oppure al volo | Nel caso si voglia duplicare un dvd5 con una copia 1:1, si puo' benissimo usare un programma di masterizzazione come k3b e fare un copia incolla da dvd sorgente a dvd destinazione, oppure al volo | ||
− | + | $ dd if=/dev/cdrom of=/dev/dvdrw | |
− | $ dd if=/dev/cdrom of=/dev/dvdrw | ||
o | o | ||
− | + | $ growisofs -Z /dev/dvdrw=/dev/dvdrom | |
− | $ growisofs -Z /dev/dvdrw=/dev/dvdrom | ||
e chi piu' ne ha piu' ne metta. | e chi piu' ne ha piu' ne metta. | ||
Riga 638: | Riga 646: | ||
$ cdrdao write --speed 4 --device 0,0,0 videocd.cue | $ cdrdao write --speed 4 --device 0,0,0 videocd.cue | ||
+ | |||
+ | [[Category:Howto]] |
Versione attuale delle 09:48, 18 nov 2012
Conversioni e Programmi Video (in init tre).
"Alex.u - alessandro.ugolini@autistici.org"
- Ingredienti
- Mplayer, Mencoder, Transcode, lsdvd, dvdauthor, libdvdcss, Lame, Mjpegtools, image magick, ffmpeg, sox, gimp, lsdvd, toolame, vcdimager,(minimo indispensabile).
Per l'installazione degli ingredienti si utilizzano i vari gestori di pacchetti presenti in tutte le distro; per una personalizzazione e un eccellente rendimento e' preferibile compilare il tutto (cosa non da poco:->)."
Il presente doc serve a conoscere i vari termini usati nell'editing video, senza i quali sarebbe difficile usare ANCHE un programma con interfaccia grafica (a suon di clik).
Glossari
Formati video.
- Mpeg1/2
- Motion Process Expert Group - ES elementary stream senza info PS program stream audio-video-info
- Avi
- Formato file piu' che video. Audio Video Interleaved (alcuni riportano interlaced). Puo' contenere tutti i codec.
- Mov
- Contiene mpeg4 e acc audio.
- Wmv
- fanno tenerezza
- OGM
- Formato contenitore come l'avi. Puo' contenere qualsiasi codec A/V. Si possono aggiungere sottotitoli, menu. L'unico difetto e' che non e' ancora supportato dai riproduttori da tavolo.
Formati video (del televisore :^/)
- Standard televisivi
- ce ne sono 2 Pal e Ntsc con differenze di eimenzione, hz diversi, frame rate diverso
- PAL
- usato in europa e asia, dim. 720x576 area visibile 702x576, dim. del pixel 128x117 con aspect ratio di 1,094, frame rate 25 mezzi frame (50)
- NTSC
- usato in usa e japp, dim 720x486 area visibile 711x486, dim. del pixel 72x79 con aspect ratio di 0,911, frame rate 30 mezzi frame (60)
- 4/3
- formato delle tv piu' comuni
- 4/3 nativo
- formato video tipico dei cartoons
- letter box
- tipiche bande nere orizzontali, quando in una tv da 4:3 viene visualizzato un film in 16:9
- 16/9
- formato televisivo wide screen
- anamorfico
- formato cinematografico leggermente allungato per essere adattato alle tv 16/9.
- VistaVision
- Formato cinematografico con dim 1.85:1
- Cinemascope
- Formato cinematografico con dim 2.35:1
- RGB
- descrizione del pixel R-red G-green B-blue tipica dei monitor
- Aspect ratio
- E' il rapporto che sta' tra la larghezza e l'altezza di un formato. (es 4:3 = asr 1,3333333)
- Bitrate
- Quantita' di informazioni espresse in bit in un secondo. (es. un file mp3 a 128Kbps = 1 secondo di musica = 128000 bit = 16000 byte al secondo)
- YUV
- descrizione del pixel Y-luminanza (giallo) U-crominanza (rosso-giallo) V-crominanza (blu-giallo)
- dpi
- pixel x pollice. Usato dagli scanner es 300 dpi (300 pixel in un pollice). Si puo' calcolare lo spazio utilizzato da un' immagine senza compressione. A4=21x29.7 cm 1-inch=2,54 cm profondita'=24 bit; (300dpi / 2.54 cm)^2 = 13950 pixel/cm^2 ; 21 x 29,7 x 13950 = 8700615 pixel totali; ogni pixel ha una profondita' di 24 bit e per fare un byte ci vogliono 8 bit - 8700615 x 24 / 8 = 26101845 byte overo 26 MB
Codecs Video
- mpeg1
- (vcd) Libreria mpeg1 es.
- mpeg2
- (dvd) codec per dvd estenzione solo video .m2v
- opendivx
- codec libero, produce immagini YV12 codifica veloce.
- divx
- implementata in mplayer (e mencoder) la versione libera di divx4 con il nome di divx4linux. Utilizza mpeg4
- xvid
- Creato dalla separazione di openivx e divx5. Ottimo codec. Utilizza mpeg4
- lavc
- No comment. IL Codec GNU per eccellenza supporta un po' di tutto. E di tutto un po' parecchio bene. Utilizza mpeg4 e molti altri.
- ffmpeg
- E' una signora libreria che contiene codec opensource in grado di decodificare una gran parte di formati video: mjpeg,rv10,divx3-4-5,mp41,wmv1-2,HuffYUV,wma Molto piu' veloce dei codec proprietari. ovviamente.
Codecs audio
- mpeg layer 2
- mp2 con extension .mpa
- mpeg layer 3
- mp3 files musicali
- mpeg layer 1
- vcd
- wma
- v1 v2 di win
- ac3 dolby
- decodifica hw e sw x piu' canali compreso il dolby surround. Audio dei dvd.
- ogg vorbis
- libero - libreria simile all'mp3 anzi meglio
- pcm
- non compresso
Supporti CD/DVD
- CD
- I CD normalmente contengono una sola sessione. E' possibile creare piu' sessioni, di grandezza diversa. Lo spazio utilizzabile e' di 700 Mb, esistono in commercio CD High Capacity in grado di contenere fino a 1Gb, come esistono miniCD di grandezze diverse
- CD-audio
- I CD audio contengono piu' sessioni, una per ogni traccia audio. Le tracce audio contengono dati stereo campionate a 44100 Hz con 16 bit.
- DVD
- Digital Video Disk, puo' contenere 120 min di video, con qualche accorgimento anche di piu' ;). Per i dati, lo spazio disponibile e' 4,4 Gb circa e non 4,7 come dicono i costruttori!
- DVD-video
caratteristiche possibilita' di memorizzare fino a 8 tracce audio possibilita' di inserimento fino a 32 sottotitolazioni possibilita' di inserire riprese (angle) da piu' punti di vista possibilita' di inserire menu e contenuti multimediali possibilita' di inserire punti di biforcazione, in modo da creare storie con conclusioni multiple.
- DVD-RAM
- DVD riscrivibili da 2.5 Gb per faccia
- DVD5
- 4.7 Gb per faccia, singolo strato il piu' diffuso e utilizzato, spazio dati 4.4 Gb
- DVD9
- 8.5 Gb singola faccia doppio strato, i comuni dvd-video in vendita
- DVD10
- 9.7 Gb doppia faccia singolo strato, disponibili 8.8 Gb
- DVD18
- 17 Gb doppia faccia doppio strato
- Region
- Il codice (da1 a 6) che identifica i 5 continenti. L' europa e' il 2
Raccolta delle info
info di un DVD
Il programma per eccellenza per raccogliere info da un dvd e' lsdvd. Nella sua massima espressione
$ lsdvd -x
libdvdread: Using libdvdcss version 1.2.5 for DVD access
Disc Title: DVDVOLUME Title: 01, Length: 01:52:36 Chapters: 31, Cells: 32, Audio streams: 03, Subpictures: 01
Title: 02, Length: 00:00:06 Chapters: 01, Cells: 01, Audio streams: 03, Subpictures: 01
Title: 03, Length: 00:02:45 Chapters: 06, Cells: 01, Audio streams: 00, Subpictures: 00
Title: 04, Length: 00:00:00 Chapters: 01, Cells: 01, Audio streams: 03, Subpictures: 01
Title: 05, Length: 00:01:38 Chapters: 01, Cells: 01, Audio streams: 03, Subpictures: 00
Title: 06, Length: 00:02:45 Chapters: 06, Cells: 01, Audio streams: 03, Subpictures: 00
Title: 07, Length: 00:00:18 Chapters: 02, Cells: 02, Audio streams: 00, Subpictures: 00
Longest track: 1
il Title 1 e' il piu' lungo, quindi si presuppone sia il film vero e proprio. Con Mplayer si ottengono le info relative allo scale, alla durata e al tipo di file.
mplayer dvd://1 -v -vo null -ao null
Aumentando l'opzione -v si inrementa il livello di verbosita' (-v -v -v) Ulteriori info si trovano con tcprobe
$ tcprobe -i /dev/dvd -T 1
Con l'opzione -d Numero 0-1-2 si incrementano le info.
Con questo comando si ha in risposta il bitrate giusto da impostare per un' eventuale codifica in mpeg4 e audio mp3 abr a 128 kbps
info di un file avi
Si puo' usare mplayer (come sopra del resto!)
$ mplayer film.avi -v
o tcprobe
$ tcprobe -i film.avi (mpg)
Durata del film - qualita' dell' mp3
Nel caso dell'output riportato il film dura 1 ora 52 minuti e 36 secondi ovvero in sec. (112*60)+36 = 6756
La creazione di un buon MP3 e' del bitrate di 128 Kbit ma si puo' ricorrere a riduzioni piu' drastiche tipo di 64 (la meta' dello spazio accupato da un normale mp3)
Mb di spazio occupato di un mp3 128 Kbit durata 6756 secondi
[(128*6756)/8]/1000 = 108,096
un mp3 di durata 6756 occupa 108 Mb a "bitrate Fisso"
N.B. ci rimangono solamente 593 Mb di un cd da 700 Mb per metterci il video.
Calcolo del bitrate video
Si calcola in base allo spazio a disposizione.
Nel nostro caso
592 Mb (ovvero)
592*1000*8=4,736,000 Kbit disponibili
e un secondo del film puo' contenere
4,736,000/6756 = 701,00651 Kbit
Cmq la soluzione piu' veloce si ottiene lanciando tcprobe con dvd inserito. Il calcolo del bitrate video lo fa da solo impostando di default il codec audio mp3 a 128 kbps
$ tcprobe -i /dev/dvd
import frame size: -g 720x576 [720x576] aspect ratio: 4:3 (*) frame rate: -f 25.000 [25.000] frc=3 audio track: -a 0 [0] -e 48000,16,2 [48000,16,2] -n 0x2000 [0x2000] audio track: -a 1 [0] -e 48000,16,2 [48000,16,2] -n 0x2000 [0x2000] [tcprobe] V: 67500 frames, 2700 sec @ 25.000 fps [tcprobe] A: 42.19 MB @ 128 kbps [tcprobe] CD: 650 MB | V: 607.8 MB @ 1888.4 kbps [tcprobe] CD: 700 MB | V: 657.8 MB @ 2043.8 kbps [tcprobe] CD: 1300 MB | V: 1257.8 MB @ 3907.9 kbps [tcprobe] CD: 1400 MB | V: 1357.8 MB @ 4218.6 kbps
Ritaglio alias Crop
con mplayer si puo' calcolare il ritaglio
$ mplayer dvd://1 -vop cropdetect -vo null -ao null
aggiungerei anche un capitolo in modo che sia parte interna del film
$ mplayer dvd://1 -chapter 3 -vop cropdetect -vo null -ao null
[-'bla'<bla>'bla']
crop area: X: 4..719 Y: 0..575 (-vf crop=716:576:4:0)28% 1,2% 0 0 41%
crop area: X: 4..719 Y: 0..575 (-vf crop=716:576:4:0)28% 1,2% 0 0 43%
ci interessa solo..........................^^^^^^^^^^^
facciamo una prova con un rettangolo bianco
$ mplayer dvd://1 -vop rectangle=716:576:4:0
oppure direttamente ritagliato
$ mplayer dvd://1 -vf crop=716:576:4:0
Prima ho usato mplayer con l'opzione -vop e ora -vf. Il manuale dice che -vop e' obsoleto e con -vf video filters si ottengono i soliti risultati
Funzionamento del crop - video
supponiamo la schermo 720 x 576
+-----------------------W-----------------------+ | | | | | | Z X | | | | | | +-----------------------Y-----------------------+
-vf crop=X:Y:Z:W
Attenzione che "X" e "Y" dipendono da "W" e "Z" supponiamo Z = 20 ; X =< [720-20] poiche' il crop taglierebbe una parte dello schermo inesistente
interlaced
I video creati per essere visti alla TV sono interlacciati, cioe' creati da mezzi frame a righe dispari e pari, quindi, durante la visione su un pc o durante una codifica e' opportuno deinterlacciarli con un video filtro.
$ mplayer videointerlac.vob -vf pp=li
tra le opzioni di pp : lb-lineare blend li-lineare interpolato ci-cubico interpolato
Trasformazioni video
Rippare DVD.
L'operazione detta rippaggio consiste nel copiare il contenuto di un dvd-video sull'HD.
Per ripparlo si usa mencoder, vobcopy o transcode.
$ mencoder dvd://n -dvdangle n -chapter n -ovc copy -oac copy -o film.avi
Se si vuol rippare il film intero toglie l'opzione -chapter. Sid e' l'indice dei sottotitoli. Attenzione a dove viene lanciato che non ci siano nei paraggi file tipo frameno.avi :) oppure
$ vobcopy -l
Per mettere i sottotitoli in un file separato
$ mencoder dvd://n -dvdangle n -chapter n -vobsubout film -vobsuboutindex 0 -sid 0 -ovc copy -oac copy -o film.avi
creando cosi due file film.idx e film.sub (conviene chiamarli come il file video, in modo che mplayer li carichi semplicemente con la 'v'). Con -sid si sceglie la lingua dei sottotitoli. Con vobsuboutindex si da un indice al file sottotitoli creato. All'interno dello stesso file si possono aggiungere piu' lingue, basta ripetere il processo e cambiare i numeri di vobsuboutindex e sid.
Encoding DVD
L'operazione di encoding consiste nel trasformare il dvd rippato, il dvd dal suo device o un qualsiasi file video in un altro formato video tramite l'uso di un codec. (come divx4 o lavc)
1° passaggio
Non e' proprio il primo passaggio del codificatore... con questo passaggio si crea un file frameno.avi contenente solo l'audio e alla fine dell'output, delle informazioni relative al bitrate video da usare
# mencoder film.avi -oac mp3lame -lameopts abr:br=128 -aid 130 -af volume=2:sc -ovc frameno -o frameno.avi
da un risultato di calcolo tipo questo
[...]
Pos:2613,6s 65344f (100%) 135fps Trem: 0min 56mb A-V:0,038 [0:175]
Writing AVI index...
Fixing AVI header...
Recommended video bitrate for 650MB CD: 1897
Recommended video bitrate for 700MB CD: 2058
Recommended video bitrate for 800MB CD: 2379
Recommended video bitrate for 2 x 650MB CD: 3983
Recommended video bitrate for 2 x 700MB CD: 4304
Recommended video bitrate for 2 x 800MB CD: 4946
Video stream: 0,800 kbit/s (100 bps) size: 261356 bytes 2613,560 secs 65344 frames
Audio stream: 174,997 kbit/s (21874 bps) size: 57182184 bytes 2614,080 secs
2° passaggio
Nel secondo passaggio si riprende dalla dir corrente il frameno.avi con -oac copy, e diamo il pass=1 al codec divx (nelle opzini), creera' un file di log che verra' in seguito letto dall'opzione pass=2. Il risultato finale viene cancellato, ci interessa solo il file di log
$ mencoder film.avi -oac copy -ovc divx4 -divx4opts :br=2066:pass=1 -vf pp=de,crop=716:576:4:0,scale=480:-2 -aid 130 -o "/dev/null"
oppure con il mitico lavc
$ mencoder filmavi -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=2066: vpass=1 -vf pp=li,crop=716:576:4:0,scale=480:-2 -aid 130 -o "/dev/null"
3° passaggio
ultimo passaggio, quindi creazione del file avi
$ mencoder film.avi -oac copy -ovc divx4 -divx4opts :br=2066:pass=2 -vf pp=de,crop=716:576:4:0,scale=480:-2 -aid 130 -o "minonnafaleprove.avi"
ricodarsi di cancellare i residui
$ rm frameno.avi
$ rm divx2pass.log
con lavc
$ mencoder film.avi -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=2066:vpass=2 -vf pp=li,crop=716:576:4:0,scale=480:-2 -aid 130 -o film.avi
Rippare e encodare con un solo passaggio
Se le dimenzioni finali del file video possono essere superiori al Gb, e' conveniente rippare con un solo passaggio, risparmiando un sacco di tempo :)
$ mencoder dvd://1 -aid 129 -sid 1 -vobsubout film -oac mp3lame -lameopts abr:br=128 -af volume=2:sc -ovc divx4 -divx4opts :br=2066 -vf pp=ci,crop=716:576:4:0,scale=600:-2 -o film.avi
In dettaglio
mencoder dvd://1 # dice a mencoder di leggere il dvd al title 1
-aid 129 # seleziona la lingua - un alternativa e' -alang it per selezionare lingua italiana
-sid 1 -vobsubout film # seleziona la traccia 1 dei sottotoli che in questo es. e' la traccia in italiano. Vobsubout specifica il file di destinazione. NB se non viene specificato vobsubout, i sottotitoli vengono "cuciti" sul video stesso e non e' possibile toglierli
-oac mp3lame -lameopts abr:br=128 # oac usa mp3lame come codec audio, average bitrate a 128 kbps
-af volume=2:sc # audio filters, aumento il volume di 2
-ovc divx4 -divx4opts :br=2066 # uso il codec divx4 con bitrate 2066
-vf pp=ci,crop=716:576:4:0,scale=600:-2 # video filters, pp=ci deinterlaccio il film con cubic-intepolar xche' e MOLTO interlacciato, ritaglio il video con crop, lo riscalo da 716 x 576 a 600 x "il calcolo lo fa lui col l'opzione -2"
-o film.avi # Nome del file finale
nel caso di lavc basta sostituire la riga del codec video con:
-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=2066
Creare una piccola anteprima
Per controllare i settaggi senza dover aspettare delle ore si puo' creare una piccola anteprima tipo questa:
$ mencoder dvd://1 -aid 129 -sid 1 -ss 00:10:00 -endpos 00:01:00 -vobsubout film -oac mp3lame -lameopts abr:br=128 -af volume=2:sc -ovc divx4 -divx4opts :br=2066 -vf pp=ci,crop=716:576:4:0,scale=600:-2 -o film.avi
l'opzione -ss 00:10 dice di iniziare la lettura dopo 10 minuti, -endpos dice di fermarsi dopo 1 minuto di lettura il risultato e' una anteprima di un minuto 10 minuti dopo l'inizio del film.
Manipolare file video
Tagliare in due parti un file avi
Nel pacchetto transcode sono presenti numerosi eseguibili per la modifica degli avi. Cio' non toglie che si possa usare mencoder. Cmq per spezzare un file avi si usa avisplit:
$ avisplit -s 700 -i film.avi
spezza l'avi in file da 700 Mb
$ avisplit -i film.avi -c -o out.avi -t 00:10:00-00:11:00,00:13:00-00:14:00
spezza e unisce l'avi dal decimo all'undicesimo minuto e lo incolla (-c) con il pezzo dal tredicesimo al quattordicesimo
Incollare due avi
avimerge e' l'ideale
$ avimerge -o filmone.avi -i film1.avi film2.avi film3.avi
oppure incollare una traccia audio
$ avimerge -o filmconaudio.avi -i film.avi -p audio2.avi -a 1
Unire video NON avi
$ mencoder video_divisi_00* -o ../video_completo.mpg -oac copy -ovc copy
Creare audio2.mpa da un mp3 e' un buona idea ...
$ transcode -i song.mp3 -x null,mp3 -g 0x0 -y raw -a 1 -o audio2.avi -u 50
Risincronizzare audio e video
usando avisync
$ avisync -i fim.avi -o out.avi -n -10
ritarda l'audio di 10 frames correggere un indice danneggiato
I risultati migliori li ho ottenuti con mencoder
$ mencoder film.avi -ovc copy -aoc copy --forceidx -o indicecorretto.avi
Codificare un vecchio video in un nuovo formato
Per salvare spazio su disco può essere utile ricodificare vecchi video con codec moderni es. h264 per il video e faac per l'audio.
ffmpeg -i vecchio_video.avi -acodec libfaac -ab 96k -vcodec libx264 -b:v 600k -threads 2 nuovo_video.mp4
In caso di errore assicuratevi che la vostra versione di ffmpeg sia stata compilata col supporto per h264 e faac, altrimenti il pacchetto andrà ricompilato aggiungendo queste opzioni al ./configure:
--enable-libx264 \ --enable-nonfree \ --enable-libfaac \
Scrivere su un file di testo l'header di un avi
Utile per il debug aviindex -i film.avi -o film.index
DVD video
Copiare un dvd5
Nel caso si voglia duplicare un dvd5 con una copia 1:1, si puo' benissimo usare un programma di masterizzazione come k3b e fare un copia incolla da dvd sorgente a dvd destinazione, oppure al volo
$ dd if=/dev/cdrom of=/dev/dvdrw
o
$ growisofs -Z /dev/dvdrw=/dev/dvdrom
e chi piu' ne ha piu' ne metta.
Copiare un DVD9
Per dvd5 si intende un dvd da 4,7 Gb ovvero 120 min di film. Per fare una copia 1:1 occorre avere il dvd sorgente di 4,7 gb , cosa non da poco visto che i normali dvd a noleggio sono tutti di durata superiore (dvd9).
Occorre cosi' togliere il superfluo, come i contenuti speciali, gli audio extra ecc.. e rientrare nei 120 min. Se il film e' di durata superiore, si puo' ricorrere a 2 stratagemmi. 1 acquistiamo un dvd9 :) e facciamo la copia, 2 requantiziamo il film (non sempre il risultato funziona su tutti i lettori dvd da tavolo)
Il DVD sorgente va comunque "smontato", cosa non difficile ma che richiede molto tempo. Per semplificare il tutto esiste uno script in perl in grado di facilitare questo compito (NB il piu' delle volte funziona!). Da http://james.nontrivial.org/projdvd.htm e' possibile scaricare dvd2iso.pl, l'utilizzo e' pittosto semplice. Editare lo script e inserire la directory di lavoro che abbia almeno 20 Gb di spazio libero, inserire il dvd e lanciare
$ ./dvd2iso.pl -c -D -a 2 -k -v 5000
A questo punto dentro la directory di lavoro abbiamo una dir chiamata out contenente i vob, pronti da essere trattati con dvdauthor e masterizzati, nel caso in cui lo spazio sia ridimenzionato rispetto all'originale.
Nel caso il file .vob sia comunque piu' grande del necessario, si puo' requantizzare a mano anziche' rilanciare lo script con un bitrate piu' basso, basta estrarre il flusso video
$ tcextract -i out/nomefile.vob -x mpeg2 -a 1 ottenendo cosi' 2 file .m2v mpa. E' il momento di requantizzare
Nel pacchetto transcode si trova l'eseguibile tcrequant. Per calcolare la requantizzazione risolvere la seguente formula fattore di requant = (grandezza del filevideo .m2v / (grandezza del supporto - grandezza del file audio .mpa)) * 1.04 con il numeretto ottenuto si lancia tcrequant
$ tcrequant -i file.m2v -o film.m2v -f fattore di requant a questo punto ricreiamo il file .vob, vedere la sezione multiplexaggio
da Divx a DVD5
Prendere le info
$ tcprobe -i film.avi alla riga: ... [avilib] A: 44100 Hz, format=0x55, bits=0, channels=1, bitrate=128 kbps ... Attenzione al bitrate audio, non puo' essere superiore dell'originale (128). X la specifica dvd deve andare da 32 kbps a 192 kbps per audio mono, 64 kbps a 384 kbps per audio stereo
- transcodifica
$ transcode -i film.avi -V -y mpeg -F d -E 44100 -b 128 -o primodvd
creando cosi' 2 file primodvd.m2v primodvd.mpa. Ultimamente frugando nel man di transcode ho scoperto questo:
$ transcode -i film.avi -V -y mpeg -F d -E 44100 -b 128 --export_prof dvd-pal -o primodvd
L'opzione export prof si preoccupa di rendere l'output totalmente compatibile con lo standard DVD
- multiplexaggio
unione di primodvd.pmpa primodvd.m2v
$ tcmplex -o film.vob -i primodvd.m2v -p primodvd.mpa -m d
supponiamo di avere un altro file audio in un altra lingua (primodvdeng.mpa), si puo' aggiungere con:
$ tcmplex -o film.vob -i primodvd.m2v -p primodvd.mpa -s primodvdeng.mpa -m d
- trasformazione in formato dvd
con dvdauthor da riga, al volo. Creare due dir A e B, dentro A metterci il film.vob o i vari film.vob. Dopodiche'
$ dvdauthor -o B A/*
in questo modo si mettono tutti i vob di A nella dir di B con i relativi .ifo .bup.
$ dvdauthor -T -o B
Crea la tabella dei contenuti del DVD. Si puo' procedere alla masterizzazione.
- Scegliere un immagine
L'immagine di sfondo deve essere di formato 4:3. Con gimp 2, dal menu nuovo si puo impostare nuova immagine PAL, incollarci dentro qualsiasi tipo di disegno e salvare con il formato png o jpeg. Alla solita immagine aggiungere un layer trasparente e disegnare i pulsanti di attivazione. Successivamente verra' salvata in modalita' 4 colori (salvarla 2 volte in 2 colori diversi). Ottenendo cosi 3 immagini : menu.png select.png high.png.
- L'audio
Si puo' creare una traccia audio con una musichetta oppure una traccia audio vuota, poiche' e' indispensabile avere una traccia audio.
$ mplayer -ao pcm /arc/mp3/musichetta.mp3
trasformo un mp3 in un wav (audiodump.wav)
$ mp2enc -r 48000 -o menu_audio.mpa < audiodump.wav
trasformo un wav in un mp2 ottenendo il menu audio. Oppure una traccia audio vuota con un semplice:
$ dd if=/dev/zero bs=4 count=1920 | toolame -b 128 -s 48 /dev/stdin menu_audio.mpa
- Un filmato con menu.png
Con il file menu.png e' necessario creare un filmato ovvero uno stream MPEG2 formato PAL 720x576
$ pngtopnm menu.png | ppmtoy4m -n 50 -r -F 25:1 -A 128:117 -I p |mpeg2enc -n p -f 8 -o menu_video.m2v
Nel caso l'immagine sia in formato jpeg
$ jpeg2yuv -n 50 -I p -f 25 -j menu.jpeg | mpeg2enc -n p -f 8 -o menu_video.m2v
- Unire il filmato con l'audio
Si usa mplex come sempre!
$ mplex -f 8 -o menu.mpg menu_video.m2v menu_audio.mpa
- Creazione dei bottoni animati
Creare il file xml per spumux (e' nel pacchetto dvdauthor) vedere l'esempio spumux.xml
<subpictures> <stream> <spu start="00:00:00.0" end="00:00:00.0" highlight="high.png" select="select.png" force="yes" autoorder="columns" autooutline="infer"> </spu> </stream> </subpictures>
All' interno del tag spu sono presenti le immagini contenenti i bottoni in png indicizzato a 4 colori, highligh sta ad indicare l'attivazione al passaggio del mouse e select il colore al momento della pressione. Start ed End sono uguali, sta ad indicare un loop del menu video. Autoorder, dice a spumux che i pulsanti sono ordinati per colonne.
$ spumux spumux.xml < menu.mpg >menu_finito.mpg
Con questo il menu con i pulsanti e' fatto.
Inserire i sottotitoli.
Il problema piu' grande e' estrarre i sottotitoli dal dvd in formato .srt. Il programma subrip, nato x win, e' gpl e gira bene in emulazione con wine.
L'utilizzo e' semplicissimo, dopodiche creare un nuovo file xml che servira' per inserire i sottotitoli.
<subpictures> <stream> <textsub filename="film.sub" characterset="ISO8859-15" fontsize="28.0" font="arial.ttf" horizontal-alignment="left" vertical- alignment="bottom" left-margin="30" right-margin="60" top-margin="20" bottom-margin="30" subtitle-fps="25" movie-fps="25" movie-width="720" movie-height="574" /> </stream> </subpictures>
Inserire il font arial.ttf nella directory .spumux della propria home. Se non esiste, crearla. e per unire al video
$ spumux sub.xml < film.mpg > film_sottotitolato.mpg
Creazione DVD finale con dvdauthor
Ancora un file xml contenente i tag x le specifiche, stabilire capitoli, pul santi, e menu.
<dvdauthor dest="dvd/" > <vmgm> <menus lang="it" > <video format="pal" aspect="4:3" /> <subpicture lang="it" /> <pgc> <vob file="menu.mpg" pause="inf"/> <button>jump title 1;</button> <button>jump title 2;</button> </pgc> </menus> </vmgm> <titleset> <titles> <pgc> <vob file="film1.mpg"/> <post>call menu;</post> </pgc> <pgc> <vob file="film2.mpg"/> <post>call menu;</post> </pgc> </titles> </titleset> </dvdauthor>
Per creare piu' capitoli aggiungere alla voce vob del film l'opzione chapter es:
<vob file="film.mpg"chapters="0:10:00.000,0:20:00.000 />
Mettere menu, file xml e file video tutto nella stessa directory
$ dvdauthor -x tuttoillavoro/film.xml
Masterizzazione
Si puo' creare un' immagine con mkisofs, oppure masterizzare il contenuto della dir di lavoro con growisofs
$ mkisofs -dvd-video -v -o dvd.iso cartella con dvd
$ growisofs -Z /dev/hdc -dvd-video /home/utente/tuttoillavoro/DVD
Creare VCD
Che cosa?
avendo un avi per le mani si puo' trasformare in un vcd (attenzione alla durata)
Come?
Si puo' redigere l'avi al codec yuv4mpeg della famiglia di mjpeg tool. creando una named pipe dal nome dell output di mplayer si lancia il programma Oppure la stessa cosa con transcode. Un esempio:
$ mkdir filmout
$ mkdir filmout.mpa
si creano 2 named pipe
$ transcode -i film.avi -V -y yuv4mpeg,mpeg -b 224 -Z 352x288 -o filmout -k -C 2
con questa roba transcode prende l'avi e spedisce il flusso video alla named pipe filmout e il flusso audio alla named pipe filmout.mpa. Su una consolle diversa digitiamo:
$ cat filmout.mpa > film.mpa
cosi copiamo il contenuto della pipe nel file audio .mpa
$ cat filmout | mpeg2enc -f 1 -n p -o film.m1v
mplex
Con il programma mplex si incolla audio e video.
$ mplex -f 1 -o film.mpeg film.m1v film.mpa
vcdimager
e per renderlo vcd a tutti gli effetti e prepararlo alla masterizzazione si usa vcdimager
$ vcdimager -l "boia de!" -p film.mpeg
ottenendo = videocd.bin (immagine binaria) = videocd.cue (indice delle tracce)
Nella dir /usr/share/doc/mplayer/examples/ c'e' un file di nome mencvcd.gz. E' uno script che fa la stessa roba utilizzando mencoder. E' obbligatorio provarlo!
Masterizzalo!
$ cdrdao write --speed 4 --device 0,0,0 videocd.cue