2012-05-17 12 views
5

video Fonte: http://www.artworknotavailable.com/tmp/ffmpegtestPerché ffmpeg riporta durate diverse?

QuickTime Pro 7.7.1 Inspector (Win 7) riporta il seguente per il file 2398.mov

4.19MB
H.264
Movie FPS: 23.98
Data Rate: 2,35 Mbit/Sec
Durata 14:97

ffmpeg segnala il seguente (vedi completa info versione ffmpeg in fondo post)

ffmpeg -i 2398.mov

Sembra flusso frame rate 1 codec differisce dal telaio contenitore rate: 47952,00 (47952/1) ->> 23.98 (2997/125)
ingresso # 0, mov, mp4, m4a, 3GP, 3G2, mj2, da '2398.mov':
Metadati:
major_brand: qt

minore _version: 537199360
compatible_brands: qt
Durata: 00: 00: 15,97, inizio: 0.-963.005, bitrate: 2210 kb/s
flusso # 0.0 (ita): Audio: AAC, 48000 Hz, stereo, s16 , 152 kb/s
flusso # 0.1 (ita): Video: H264, YUV420P, 848x480, 2060 kb/s, 23.98 fps, 23.98 TBR, 23976 tbn, 47952 tbc

un secondo di più di quello che riporta Quicktime.

Come esperimento ho esportato il file da QuickTime Pro utilizzando le seguenti impostazioni:

Frame Rate: Corrente
Key Frames: Ogni 24 fotogrammi
Telaio Riordinamento delle
Qualità: Alta
Codifica Migliore
Data Rate: Automatico
Ottimizzato per Download
File di output: qtime-export-2398.mov

Quicktime ispettore riferisce:

5,62 MB
H.264
Movie FPS: 23.98
Data Rate: 3.15 Mbits/sec
Durata 14:97

ffmpeg riporta ora:

ffmpeg -i qtime-export-2398.mov

Sembra flusso frame rate 1 codec differisce dal contenitore frame rate: 1200,00 (1200/1) -> 23,98 (24000/1001)
Input # 0, mov, mp4, m4a, 3gp, 3g2, mj2, da 'qtime-export-2398.mov':
Metadati:
major_brand: qt
minor_version: 537199360
compatible_brands: qt
Durata: 00: 00: 14.96, avviare: 0.000000, bitrate: 3153 kb/s
flusso # 0.0 (ita): Audio: pcm_s16le, 44100 Hz, 2 canali, s16, 1411 kb/s
flusso # 0.1 (ita): Video: H264, YUV420P, 678x384, 1738 kb/s, 23.98 fps, 23.98 TBR, 600 tbn, 1200 da confermare

ffmpeg di il rapporto sulla durata è passato da 15.97 a 14.96 (posso vivere con .1)

Questa durata è calcolata dal bitrate?

Ho bisogno di riportare accuratamente la durata dei video caricati e convertirli in FLV. Qualcuno può dirmi cosa sta succedendo qui e come potrei aggirare questo?

ffmpeg informazioni di seguito. Ho provato questo su 2 installazioni/versioni completamente diverse di ffmpeg. Stesso risultato

FFmpeg versione 0.6.5, Copyright (c) 2000-2010 sviluppatori la FFmpeg costruito su 29 Gennaio 2012 23:55:02 con gcc 4.1.2 20.080.704 (Red Hat 4.1.2-51) la configurazione : --prefix =/usr --libdir =/usr/lib64 --shlibdir =/usr/lib64 --mandir =/usr/share/man --incdir =/usr/include --disable-avisynth --extra- cflags = '- O2 -g -pipe -Wall -Wp, -D_FORTIFY_SOURCE = 2 -fexceptions -fstack-protector --param = ssp-buffer-size = 4 -m64 -mtune = generico -fPIC' --enable-avfilter - -enable-avfilter-lavf --enable-libdirac --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads --enable-shared --enable-swscale --enable-vdpau - -enable-version3 --enable-x11grab libavutil 50.15. 1/50.15. 1 libavcodec 52.72. 2/52,72. 2 libavformat 52.64. 2/52.64. 2 libavdevice 52. 2. 0/52. 2. 0 libavfilter 1.19. 0/1.19. 0 libswscale 0,11. 0/0,11. 0 libpostproc 51. 2. 0/51. 2. 0 FFmpeg 0.6.5 libavutil 50.15. 1/50.15. 1 libavcodec 52.72. 2/52,72. 2 libavformat 52.64. 2/52.64. 2 libavdevice 52. 2. 0/52. 2. 0 libavfilter 1.19. 0/1.19. 0 libswscale 0,11. 0/0,11. 0 libpostproc 51. 2. 0/51. 2. 0

+0

Appena testato con alcune altre variazioni nell'esportazione Quicktime. Sembra che se si scelga qualsiasi frame rate o bitrate per esportare, ffmpeg ha ancora maggiori possibilità di riportare una durata più accurata. Quicktime "Fixing" qualcosa? Il container? – kenitech

risposta

3

Ho appena dato un'occhiata al primo file ed ecco perché essi riportano una durata diversa.

Quicktime sta raccogliendo il valore di durata dall'intestazione del film. I valori qui sono 8981/600 = 14,97 secondi.

FFmpeg sta raccogliendo il valore di durata dall'intestazione "media" che è 383000/23976 = 15,97 secondi per il video e 719872/48000 = 15,00 per l'audio.

Modifica: ... e per rispondere anche alle altre domande: Qualcuno può dirmi come potrei aggirare questo? Immagino che stai usando ffmpeg per convertire i file in .FLV? In tal caso, vorrei attenermi a quanto riportato da ffmpeg.

+0

Grazie per le informazioni. qual è il modo migliore per esaminare l'intestazione del film di un file QT? – kenitech

+0

Sto anche scoprendo che se uso il parametro '-ss' e applico il tempo di avvio negativo segnalato da ffmpeg il mio file è più vicino a quello che ritengo essere la durata corretta, più qualsiasi audio che è fuori sincrono sembra essere risolto. Per esempio: ffmpeg video reportage input.mov inizio: 0.-963.005 Durata: 00: 00: 15.97 ffmpeg -i input.mov -ar 22050 -a ter 65536 -s 320x240 -b 524288 -r 12 - ss 00: 00: 00.963005 output.flv risultato: Durata: 00: 00: 15.00 scusa, la casella di commento StackOverflow mi sta facendo impazzire. – kenitech

+0

Non sai quale sia il metodo migliore. Io uso una libreria proprietaria personalizzata che ho creato da zero. Per quanto riguarda il problema di sincronizzazione, potresti anche dare un'occhiata al parametro -async e vedere se questo aiuta. Penso che la durata di ffmpeg riportata possa essere corretta per questo file. Se si inserisce il file su una timeline che non è basata su componenti Quicktime, come Adobe Premiere Pro, la durata indicata è di 15 secondi e 23 fotogrammi. – BlueVoodoo

1

FFmpeg mostra "Durata: 00: 00: 14.96" qui, ti preghiamo di capire che la tua versione di FFmpeg è antica (e ha molti bug e regressioni noti), per favore vedi http://ffmpeg.org/download.html per informazioni su come ottenere la testa git corrente, che è sempre raccomandato

+0

Immagino che tu abbia provato il secondo file e non il primo? – BlueVoodoo

+0

Grazie per le informazioni cehoyos. Sfortunatamente, come molte persone là fuori, l'aggiornamento non è così semplice come si potrebbe sperare con l'infrastruttura attuale. La versione attuale che abbiamo in produzione non ha nemmeno un numero di versione. Gli esempi che sto usando per testare qui sono da un account di hosting condiviso personale che ho attraverso site5.com. – kenitech