Apprezzerei molto se qualcuno potesse fornire alcuni suggerimenti sull'uso di itsoffset con ffmpeg. Ho letto una serie di post su questo argomento, alcuni spiegano molto chiaramente come sincronizzare nuovamente audio e video con -itsoffset, ma non sono riuscito a farlo funzionare. mio file avi è codificato con ffmpeg, in due passaggi, utilizzando il seguente comando per il secondo passaggio:comando offset ffmpeg stream (-itsoffset) non funzionante
ffmpeg -i whole-vts_01.avs -pass 2 -y -vcodec libxvid -vtag XVID -b:v 1300K -g 240 -trellis 2 -mbd rd -flags +mv4+aic -acodec ac3 -ac 2 -ar 48000 -b:a 128k output.avi
Per una qualche ragione, io alla fine con un ritardo di 1 secondo nel video (o l'audio è 1 sec presto). Non succede spesso ma lo vedo di tanto in tanto. Tra gli altri tentativi, ho provato quanto segue:
(1) ffmpeg -i output.avi -itsoffset 00:00:01.0 -i output.avi -vcodec copy -acodec copy -map 0:0 -map 1:1 output-resynched.avi
(2) ffmpeg -i output.avi -itsoffset 00:00:01.0 -i output.ac3 -vcodec copy -acodec copy -map 0:0 -map 1:0 output-resynched2.avi
(3) ffmpeg -itsoffset -00:00:01.00 -i output.avi output-resynched8.avi
(4) ffmpeg -i output.avi -itsoffset -1.0 -i output.avi -vcodec copy -acodec copy -map 0:1 -map 1:0 output-resynched13.avi
Ecco i risultati:
- Audio incomprensibili ed a soli 5 m 35 s lunghe vs 1h 41m.
- (Output.ac3 è componente audio di output.avi) Video e audio identici all'originale, offset non ha funzionato
- Audio hanno ottenuto spostati, ma i parametri di codifica originale sostituiti con quelli di default (come previsto).
- Audio distorto e solo 9m 56s lungo vs. 1h 41m.
Vedo che molte persone spiegano, e apparentemente usano il processo descritto sopra, ma non sembra funzionare per me. Mi manca qualcosa di ovvio? Mi piacerebbe molto essere in grado di usare -itsoffset in quanto è più pulito della mia soluzione alternativa.
FWIW, ecco un modo diverso, e più a lungo per ottenere il risultato desiderato:
Innanzitutto creare un video spostato il file utilizzando solo -ss:
ffmpeg -i output.avi -ss 1.0 -vcodec copy -an oupput_videoshifted.avi
quindi estrarre l'audio:
ffmpeg -i output.avi -vn -acodec copy outputaudioonly.ac3
E infine remux entrambe le componenti:
ffmpeg -i output_videoshifted.avi -i output_audioonly.ac3 -vcodec copy -acodec copy -map 0:0 -map 1:0 output-resynched14.avi
Il processo funziona, è abbastanza veloce, ma io preferirei davvero utilizzare la soluzione one-passoffset.
C'è un [bug aperto] (http://roundup.libav.org/issue359) con il flag '-itsoffset' che potrebbe avere qualcosa a che fare con i problemi che stai vedendo. D'altra parte, l'audio confuso e troncato suona come qualcosa di più serio è sbagliato. Se questo è ancora un problema, quale versione di FFmpeg stai usando? – blahdiblah