FFMPEG Divisione di MP4 con la stessa qualità


51

Ho un file MP4 di grandi dimensioni. Sto tentando di dividerlo in file più piccoli.

ffmpeg -i largefile.mp4 -sameq -ss 00:00:00 -t 00:50:00 smallfile.mp4

Ho pensato che l'uso di -sameq avrebbe mantenuto le stesse impostazioni di qualità. Tuttavia, non devo capire cosa faccia.

Sto cercando di mantenere la stessa qualità (audio / video) e compressione con i file divisi. Tuttavia, questa impostazione rende i file divisi molto più grandi.

Quali flag devo impostare per mantenere la stessa qualità e gli stessi attributi nei file divisi mantenendo lo stesso rapporto qualità / dimensioni?

Ad esempio, se il mio file originale è di circa 12 GB ed è 1920x1080 con un bitrate di 10617kbps e un framerate di 23 frame / sec e audio a 6 canali con 317kbps, vorrei che i file divisi fossero gli stessi solo un terzo di queste dimensioni ( se lo divido in tre pezzi).


3
Cordiali saluti per chiunque legga questo: non usare -sameq, non significa "stessa qualità" .
Zaz,

Risposte:


81

Se vuoi semplicemente dividere il video senza ricodificarlo, usa il copycodec per audio e video. Prova questo:

ffmpeg -ss 00:00:00 -t 00:50:00 -i largefile.mp4 -acodec copy \
-vcodec copy smallfile.mp4

Si noti che questo crea solo la prima divisione. Il prossimo può essere fatto con un comando che inizia con ffmpeg -ss 00:50:00.

Questo può essere fatto con un singolo comando:

ffmpeg -i largefile.mp4 -t 00:50:00 -c copy smallfile1.mp4 -ss 00:50:00 -c copy smallfile2.mp4

Questo creerà smallfile1.mp4, che termina a 50 minuti nel video di largefile.mp4 e smallfile2.mp4, che inizia a 50 minuti e termina alla fine di largefile.mp4.


2
Usando questo metodo su un file mp4, ottengo i primi due secondi di ogni file creato come frame congelato (l'audio viene riprodotto normalmente). Qualche motivo noto per questo?
Ron Harlev,

Sembra un bug. Aggiornamento all'ultimo ffmpeg.
Robert,

@Robert Ho aggiornato molte volte dal 2010. Grazie.
fideli,

@RonHarlev Questo è il comportamento attualmente previsto. Senza ricodifica, è possibile tagliare solo i video in "fotogrammi chiave". I frame tra i fotogrammi chiave non contengono abbastanza informazioni da soli per creare un'immagine completa. Vedi: trac.ffmpeg.org/wiki/Seeking#Seekingwhiledoingacodeccopy
Philip Thrasher,

3

Un modo alternativo di farlo è:

// create a 2-min clip
ffmpeg -i input.mp4 -ss 00:10:00 -to 00:12:00 -c copy output.mp4

/**
* -i  input file
* -ss start time in seconds or in hh:mm:ss
* -to end time in seconds or in hh:mm:ss
* -c codec to use 
*/

La qualità del file rimane la stessa perché usiamo -c copyper copiare i flussi audio + video originali sull'output.

Riferimento, Elenco dei comandi FFmpeg comunemente usati: DigitalFortress

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.