Con Linux ed in particolare con il tool mencoder (parte del progetto mplayer) è semplicissimo ( in realtà si può fare anche su windows, basta scaricare e installarsi mplayer/mencoder per windows). Quindi per prima cosa cercate ed installate “mencoder” (apt-get install mencoder sarà sufficiente)
AGGIORNAMENTO (3 marzo 2008) – vicenda opzione
-sb
ho lasciato passare molto tempo sperando in una soluzione del problema con l’opzione
-sb
(seek byte). Alla fine penso che non verrà scritta a breve una soluzione… In sostanza l’opzione “seek byte” non ha alcuna intelligenza: pare un insulto ma è semplicemente una constatazione, fa quello che gli dite e cioè parte dal byte indicato! Questo a prescindere da dove si trovi quel byte: non cerca un keyframe (fotogrammi in cui l’immagine è memorizzata totalmente, tra un keyframe e l’altro sono memorizzati solo i cambiamenti) e non legge l’header (parte iniziale del video con le informazioni su di esso)! In sostanza è come se per mplayer/mencoder il file partisse dal punto indicato.L’opzione
-ss
invece ha questo tipo di intelligenza e quindi legge l’header e cerca i keyframe.Il manuale di mplayer da questo punto di vista è fuorviante perché ci invita a osservare l’opzione
-sb
sia quando leggiamo come utilizzare-endpos
che quando leggiamo come usare-ss
il che ci porta a pensare che-sb
abbia lo stesso funzionamento. Ebbene-sb
ha poco a che fare con queste altre 2! È utile solo a scopo di debugging..Conclusione?
Se dovete spezzare un video secondo la sua dimensione non potete con mencoder… Usate avisplit (con i relativi problemi di sincronia audio/video) oppure spezzate il video usando le informazioni sul tempo!
Se ci fossero novità in questo senso non mancherò di aggiornare questo articolo
Se avete un DivX o un Xvid, o comunque un qualunque tipo di video, di grosse dimensioni potreste volerlo suddividere in file più piccoli, ad esempio per poterlo masterizzare in differenti CD-ROM.
i comandi sono da console, ma sono veramente semplici
Ecco come separare un grosso video (ad esempio un film) in due parti (secondo i tempi):
mencoder -endpos hh:mm:ss.ms -ovc copy -oac copy grandevideo.avi -o prima-parte.avi
mencoder -ss hh:mm:ss.ms -ovc copy -oac copy grandevideo.avi -o seconda-parte.avi
allora..
ho evidenziato questo: hh:mm:ss.ms che va sostituito con il tempo esatto a cui volete spezzare il video
se ad esempio volete spezzare il video ad 1 ora, 23 minuti, 42 secondi e 122 millesimi di secondo vi basterà scrivere 01:23:42.122
scrivete lo stesso identico orario in entrambi i comandi e il video verrà spezzato esattamente in quel punto
nota: se volete spezzare a 40 minuti esatti vi basta scrivere.. 40:00 notate che ho omesso ore e millisecondi (non è necessario scriverli, ma se volete non fa male metterci degli zeri)
Può essere utile però spezzare in base alla dimensione invece che in base al tempo, se vogliamo spezzare un video per farlo stare in 2 cd ad esempio vorremmo spezzare a 700mb
i comandi cambiano così:
mencoder -endpos 700mb -ovc copy -oac copy grandevideo.avi -o prima-parte.avi
questo non funzionamencoder -sb 700mb -ovc copy -oac copy grandevideo.avi -o seconda-parte.avi
IMPORTANTE
mi hanno segnalato nei commenti che questo la seconda parte non funziona, in particolare il comando
-sb
da errore, pare richieda un “intero”.. dalla pagina del manuale di mencoder questo non traspariva.. ad ogni modo ho pensato volesse i byte esatti, invece con i byte esatti da un altro errore che ho motivo di credere sia un bug di mencoder, provvederò a segnalarlo agli sviluppatori e mi rifarò vivo al più presto, nel frattempo (anche se la guida è fatta per mencoder vi riporto qui un metodo alternativo di spezzare un file AVI)installate transcode pacchetto contenente il comando avisplit e date questo comando:
avisplit -s 700 -i grandevideo.avi
che spezzerà il video in pezzi da massimo 700 MB ( mi dicono che alcune volte sfalsa l’audio.. me spiace!! )
Vedere anche gli aggiornamenti ad inizio articolo
invece che il tempo a cui spezzare abbiamo messo i megabyte a cui vogliamo venga spezzato il video, (notate che nella seconda istruzione abbiamo usato -sb invece che -ss
, che significa appunto che vogliamo indicargli una dimensione invece che un tempo)
per farvi capire cosa abbiamo fatto vi spiego quale sia il significato degli altri parametri che ho scritto:
-ovc copy
dice a mencoder di copiare lo stream video senza ricodificarlo (ovvero lo lascia esattamente com’è)-oac copy
dice a mencoder di copiare lo stream audio senza ricodificarlo (ovvero lo lascia esattamente com’è)grandevideo.avi
è il file che noi vogliamo spezzettare-o prima-parte.avi
significa che il file di uscita deve chiamarsi prima-parte.avi-endpos hh:mm:ss.ms
dice che mencoder che deve smettere di ricodificare al tempo indicato (il tempo è conteggiato dall’inizio del filmato o da dove indicato con l’opzione-ss
)-endpos [byte]
dice a mencoder di smettere di codificare ad un certo [byte] ( [byte] va sostituito a cose tipo -> 10b = 10 byte, 10kb = 10 kilobyte, 10mb = 10 megabyte ) – (tale dimensione è conteggiata dall’inizio del filmato o da dove indicato con l’opzione-ss
)-ss hh:mm:ss.ms
dice a mencoder di iniziare a codificare dal tempo indicato-sb [byte]
dice a mencoder di iniziare a codificare dal [byte] indicato, nel modo spiegato prima
Se invece volete spezzare un file in più parti (non solo 2) allora dovete combinare le istruzioni precedenti, vi porto un esempio che spezza un file di 2 ore e 45 minuti in 3 file, i primi due da 1 ora e l’ultimo da 45 minuti
mencoder -endpos 01:00:00 -ovc copy -oac copy grandevideo.avi -o prima-parte.avi
mencoder -ss 01:00:00 -endpos 01:00:00 -ovc copy -oac copy grandevideo.avi -o seconda-parte.avi
mencoder -ss 02:00:00 -ovc copy -oac copy grandevideo.avi -o terza-parte.avi
notate come per il file intermedio vengono indicate sia inizio che fine, mentre il primo indica solo dove finire (l’inizio è sotto inteso se non è indicato come inizio del file di partenza ) e l’ultimo solo da dove iniziare (la fine e sotto intesa come fine del file di partenza)
per spezzare in più parti secondo le dimensioni anziché i tempi il modo è analogo
qui immagino di spezzare un file da 2 Gb (2 gb * 1024 = 2048 mb ) in 3 file da circa 700 mb l’uno (2048 / 3 = 682.66 mb), in realtà farò in modo che i primi 2 file siano da 700 mb esatti e l’ultimo i restanti ( 2048 – 1400 = 648 mb)
mencoder -endpos 700mb -ovc copy -oac copy grandevideo.avi -o prima-parte.avi
mencoder -sb 700mb -endpos 700mb -ovc copy -oac copy grandevideo.avi -o seconda-parte.avi
mencoder -sb 1400mb -ovc copy -oac copy grandevideo.avi -o terza-parte.avi
Per unire in un solo video tanti video più piccoli il procedimento è ancora più semplice (suppongo che i video debbano essere però codificati nello stesso modo
mencoder -ovc copy -oac copy parte1.avi parte2.avi parte3.avi -o video-riunito.avi
altrimenti potete ricodificarli
mencoder -ovc x264 -oac mp3lame parte1.avi parte2.avi parte3.avi -o video-riunito-e-ricodificato.avi
dubbi? domande? 😀
non dubito che ci siano tool grafici per fare la stessa cosa.. ma credo che non sia difficile copiare e incollare queste istruzioni adattando i valori in grassetto (e i nomi dei file) alle proprie esigenze
Guide correlate
rimuovere parti di un video con mplayer/mencoder
30 aprile, 2009 at 21:34
@keta
non so non ne ho mai avuti.. prova e facci sapere
30 aprile, 2009 at 15:18
funziona anche con file MKV da 720p in su??
29 dicembre, 2008 at 13:57
capisco qual che dici. sono nella tua stessa situazione, quando a me chiedono tutte le volte di mettere gli epi in sub ita dai forza stai ritardando ecc…. ma io di japponese non capisco niente diciamo e quando posto i sottotitoli gli traduco con il traduttore. e poi io lo faccio così per mettere qualcosa per loro ma non devo avere degli orari precisi. con tanto di “ne ho urgente bisogno, non resisto più”.
26 ottobre, 2008 at 20:06
conosco mencoder
che centra windows????
non ho mai utilizzato mencoder su windows
non uso windows da anni
che poi io debba aiutarti a “scaricarlo” mi sembra quantomeno curioso
ti sembrerò acido ma non mi piace che vengano a chiedermi aiuto dicendomi pure “ne ho urgente bisogno”
26 ottobre, 2008 at 9:56
Ciao mastro, ho visto che te ne intendi di questo mencoder per windows, mi potresti contattare in privato (msn: triktrak86@hotmail.com) per aiutarmi a scaricarlo e installarlo correttamente che non ci ho capito una mazza? ehehehe ne ho urgente bisogno. grazie mille spero vivamente che qualcuno mi aiuti 😦
18 ottobre, 2008 at 0:33
@fabiospark
se sai a priori i tempi dei tagli si è piuttosto semplice conoscendo un po’ di scripting bash/sh
se non conosci a priori i tempi dei tagli allora no.. dovresti riuscire a creare un programma che si rende conto che è cominciato uno spot e rimuoverlo…
quindi nello script bash ti basta elencare i comandi…
puoi anche fare cose più raffinate ma non posso spiegarti lo scripting in 10 minuti 🙂
17 ottobre, 2008 at 22:14
C’è modo di automatizzare la rimozione degli spot e la suddivisione del file originale in diversi files (uno per ogni sezione tra uno spot e l’altro) ognuno con nome originale + numero del capitolo (o split, o cut, o altro)?
Magari con un .bat o con qualche sorta di script.
grazie
19 Maggio, 2008 at 14:58
grazie mille per la risposta…e il consiglio
i problemi di sincronia li ho nella cattura e sfogliando la tua guida pensavo di ricodificare il file o a qualche altro suggerimento…
oppure pensavo semplicemente di usare a/v delay di mplayer durante la riproduzione ma è effettivamente un po noioso….
grazie di nuovo…se hai idee…
19 Maggio, 2008 at 13:43
@luckygala
i problemi di sincronizzazione audio/video non sono semplici da risolvere
ma questo ti è successo dopo che hai diviso/riunito il video seguendo la mia guida?
prova a lanciare il video con: mplayer -fps 25 nomevideo.avi
prova con 25 e anche con 30 fps
se riesci a ottenere un video sincronizzato puoi ricodificarlo usando quell’opzione (-fps)
19 Maggio, 2008 at 13:40
se ho un file avi creato con mencoder (acquisisco con scheda tv il video e con la soundblaster l’audio…)…e dopo un po di minuti audio e video non risultano sincronizzati….posso con mencoder ovviare a questo problema?…ricodificando il filmato?
grazie mille…
scusate l’intromissione
10 marzo, 2008 at 22:59
[…] dividere un video in più parti con mencoder […]
3 marzo, 2008 at 20:15
@per chi ancora seguisse i commenti a questo articolo…
ho spiegato a cos’è dovuto il non funzionamento dell’opzione -sb
non c’è modo di spezzare tramite megabyte con mencoder al momento
7 febbraio, 2008 at 11:40
[…] Come usare questa spezia? Semplice, seguiamo la guida di mastro […]
8 gennaio, 2008 at 15:34
[…] il link … Posted by admin […]
28 dicembre, 2007 at 20:47
[…] questo simpaticone ha ben pensato di plagiare un mio articolo […]
21 settembre, 2007 at 19:44
@truegod
caspita hai ragione!
che svista 😀
correggo subito
21 settembre, 2007 at 17:12
-endpos non indica che deve fermarsi al tempo indicato, bensì l’offset di tempo dopo cui fermarsi!!!
Per spiegarmi, nell’esempio indicato di divisione in 3 file:
Il primo dura 1 ora
Il secondo durerebbe 2 ore, ma poiché non c’è abbastanza video da codificare dura 1 ora e 45 minuti, cioè da 1 ora fino alla fine
il terzo è come ci si aspetta che sia
17 giugno, 2007 at 0:36
allora nel frattempo non ci resta che aspettare 😀
17 giugno, 2007 at 0:22
ups…
mi son perso il -i per strada 😀
hum.. che sfalsa l’audio non è bene
ecco perché usavo mencoder! 😀
16 giugno, 2007 at 19:55
Ho provato con avisplit:
credo che però la sintassi sia:
avisplit -i grandevideo.avi -s 700
però ho notato che sfalsa l’audio dal video.. 😦
16 giugno, 2007 at 19:34
Grande Mastro 😉
16 giugno, 2007 at 17:47
@Francesco
ho appena modificato la guida segnalando questa cosa e consigliando un sostituto 🙂
16 giugno, 2007 at 17:34
Si esatto! Quindi come facciamo? Se si riuscisse a risolvere ne sarei felice perchè è veramente valido mencoder.. Se no avresti qualche consiglio da darm su qualche altro programma?
Grazie!
16 giugno, 2007 at 17:05
@Francesco
il motivo è che la compressione si adatta al contenuto, quindi non è detto che 10 mega siano sempre 10 minuti (esempio) 🙂 possono essere 8 o 12 in base al contenuto…
un’alternativa sarebbe dividere con il tempo andando per “tentativi”, ma è obiettivamente una rottura!
il secondo errore, che hai avuto anche tu, è qualcosa del tipo: questo non è un file Avi (giusto?) il che mi fa pensare che ci sia un baco in mencoder…
e quello non lo posso risolvere da solo 🙂
16 giugno, 2007 at 8:51
Si in effetti anche io ho provato a dare il numero in byte, stessa cosa che succede a te, un altro errore! Allora a presto!
p.s. uso mencoder proprio per questa sua funzionalità, mi andrebbe bene anche tagliare in base al tempo, ma ho provato a tagliare un film esattamente a metà del tempo, eppure una parte veniva da 640mb e l’altra da 760.. per questo sarebbe meglio poter usare la funzione che taglia in base alla dimensione.
Grazie, Francesco
15 giugno, 2007 at 22:39
@Francesco
grazie a te.. non mi ero accorto del problema perché non avevo mai usato quel particolare comando…
credo che non accetti 700mb.. probabilmente vuole il numero in byte.. però anche così a me da un errore.. è possibile che ci sia un bug in mencoder… mi rifaccio vivo appena ne so qualcosa di più..
15 giugno, 2007 at 21:35
Grazie mille mastro! 😉
15 giugno, 2007 at 20:18
@Francesco
credo che ci sia un errore nella guida..
ho verificato e da lo stesso errore anche a me..
provvederò a correggere al più presto.. 🙂 devo solo capire dov’è il problema
15 giugno, 2007 at 18:07
E’ molto bella questa guida, però io ho un problema:
quando provo a fare il secondo tempo mi dice che:
The sb option must be an integer
Error parsing option on the command line: -sb
Exiting… (error parsing command line)
il comando che do è il seguente:
mencoder -sb 700mb -ovc copy -oac copy grandevideo.avi -o secondo-tempo.avi
come mai mi dice così?
3 Maggio, 2007 at 23:02
@bruno
ti rispondo in privato perché è off-topic rispetto all’argomento trattato dall’articolo
2 Maggio, 2007 at 15:40
Ciao ragazzi. E’ possibile con mencoder inserire in un file video (che nn ha audio) un file musicale ad esempio come sottofondo ad 1 video di paesaggi? Grazie anticipatamente.
Bruno
16 aprile, 2007 at 22:42
@Anonimo
ciao..
non ti saprei dire.. è molto strano! il tuo comando mi sembra corretto.. unico dubbio su quel “-of mpeg”
perché lo hai messo? se dai “copy” che senso ha poi dirgli di codificare l’uscita in “mpeg”?
se fosse quel formato a dare problema prova prima a ricodificare tutto il video in un altro formato
16 aprile, 2007 at 20:49
ciao
ho provato più volte ad usare queste combinazione su file mpeg-ps
nice -n 3 mencoder -ss 15:00 -endpos 5:00 -idx -ovc copy -oac copy -of mpeg “/origine.mpg” -o “/destinazione.mpg”
ma l’opzione “-ss 15:00” non funziona (persiste a “copiarlo” dall’inizio
hai qualche suggerimento
grazie 🙂
7 aprile, 2007 at 2:38
@anonimo
si.. in effetti 😀 però con mencoder puoi anche ricodificare nel frattempo e suppongo funzioni con più formati.. diciamo così.. sono abituato ad usare mencoder e mi ci trovo bene 😀
6 aprile, 2007 at 23:21
ma non bastava un avisplit?