Non riesco mai a far funzionare la soluzione di ptQa, soprattutto perché non riesco mai a capire cosa significano gli errori dai filtri o come risolverli. La mia soluzione sembra un po 'più scomoda perché può lasciare un disastro, ma se lo si lancia in uno script, la pulizia può essere automatizzata. Mi piace anche questo approccio perché se qualcosa va storto nel passaggio 4, si finisce con i passaggi 1-3 completati, quindi il recupero dagli errori è un po 'più efficiente.
La strategia di base sta utilizzando -t
e -ss
per ottenere video di ogni segmento desiderato, quindi unire tutte le parti per la versione finale.
Supponi di avere 6 segmenti ABCDEF ogni 5 secondi e desideri A (0-5 secondi), C (10-15 secondi) ed E (20-25 secondi).
ffmpeg -i abcdef.tvshow -t 5 a.tvshow -ss 10 -t 5 c.tvshow -ss 20 -t 5 e.tvshow
o
ffmpeg -i abcdef.tvshow -t 0:00:05 a.tvshow -ss 0:00:10 -t 0:00:05 c.tvshow -ss 0:00:20 -t 0:00:05 e.tvshow
Ciò renderà i file a.tvshow, c.tvshow ed e.tvshow. La -t
dice quanto tempo ogni clip è, quindi, se c è lungo 30 secondi si poteva passare a 30 o 0:00:30. L' -ss
opzione indica fino a che punto saltare il video di origine, quindi è sempre relativo all'inizio del file.
Quindi una volta che hai un sacco di file video, creo un file ace-files.txt
come questo:
file 'a.tvshow'
file 'c.tvshow'
file 'e.tvshow'
Nota il "file" all'inizio e il nome del file di escape successivo.
Quindi il comando:
ffmpeg -f concat -i ace-files.txt -c copy ace.tvshow
Ciò concede tutti i file abe-files.txt
insieme, copiando i loro codec audio e video e crea un file ace.tvshow
che dovrebbe essere solo le sezioni a, c ed e. Poi basta ricordarsi di eliminare ace-files.txt
, a.tvshow
, c.tvshow
e e.tvshow
.
Disclaimer : non ho idea di quanto sia (in) efficiente rispetto agli altri approcci in termini di, ffmpeg
ma per i miei scopi funziona meglio. Spero che aiuti qualcuno.