Pagina 1 di 1

ffmpeg - durata video errata!

Inviato: mer 20 feb 2008, 14:49
da spudhead
Salve a tutti!
È da un po' di tempo che sto utilizzando ffmpeg per svariati motivi, soprattuto per convertire i filmati del cellulare in formati più "convenzionali".

Se ricodifico un filmato in mpeg ottengo un file che funziona e si vede/sente bene ma se lo apro con xine il cronometro non avanza e segna durata nulla (0:00:00).
Con mplayer invece non accade e "ffplay -stats" mi segna la durata giusta.

Ecco come codifico in mpeg (il file da convertire era un video flash scaricato da youtube):

Codice: Seleziona tutto

ffmpeg -i slackcompiz.flv -f mpeg -vcodec mpeg2video -sameq -acodec libmp3lame  slackcompiz_mpeg1.mpg
che mi dà un file MPEGv1
oppure

Codice: Seleziona tutto

ffmpeg -i slackcompiz.flv -f dvd -vcodec mpeg2video -sameq -acodec libmp3lame  slackcompiz_mpeg2.mpg
che mi dà un file MPEGv2

Se invece codifico in mpeg4 il file risulta buono, infatti xine riconosce la giusta durata.

Codice: Seleziona tutto

ffmpeg -i slackcompiz.flv -f avi -vcodec mpeg4 -sameq -acodec libmp3lame  slackcompiz.avi
Lo stesso problema ritorna quando demultiplexo e rimultiplexo dei file vob quando effettuo dei backup di DVD Video. Infatti "dvdauthor" spesso si lamenta che il file "va all'indietro" e mi consiglia di rimultiplexare ma poiché il file creato da ffmpeg non è corretto nemmeno il dvd finale risulta corretto!
Per de- e rimultiplexare uso "tcextract" e "mplex" ma se quest'ultimo fallisce allora uso ffmpeg.

Sapete come risolvere??? Magari con mencoder??? Qualche parametro particolare???

Giorgio

Re: ffmpeg - durata video errata!

Inviato: mer 20 feb 2008, 15:04
da birg81
scusa ma i video in formato flv non fai prima a convertirli con il sito http://media-convert.com/conversione/ ?

Re: ffmpeg - durata video errata!

Inviato: mer 20 feb 2008, 15:10
da spudhead
si si certo era giusto un esempio!

Ho scaricato un file da youtube e ho dato esattamente i comandi che ho scritto per essere sicuro degli "errori" di ffmpeg!

Re: ffmpeg - durata video errata!

Inviato: mer 20 feb 2008, 15:20
da birg81
il li scarico con downloadhelper che per default mi salva i file come flv solo che poi li converto con quel sito che ti ho scritto.
anche perché usando ffmpeg l'audio ti crea problemi nel convertirlo invece con qst sito puoi pure convertire i file

inoltre puoi pure convertire i video di youtube in file 3gp o in audio in formato amr per il tuo telefonino

così non ti complichi troppo la vita!!!!

Re: ffmpeg - durata video errata!

Inviato: mer 20 feb 2008, 16:05
da 414N
Mmm :-k Come fai a dire che questo comando:

Codice: Seleziona tutto

ffmpeg -i slackcompiz.flv -f mpeg -vcodec mpeg2video -sameq -acodec libmp3lame  slackcompiz_mpeg1.mpg
ti produce un file MPEG-1? Usando come codec mpeg2video produci un video in MPEG-2... Prova a produrre un MPEG-1 senza usare la forzatura -f mpeg e senza specificare il vcodec.
Stesso discorso per il MPEG-2:

Codice: Seleziona tutto

ffmpeg -i slackcompiz.flv -f dvd -vcodec mpeg2video -sameq -acodec libmp3lame  slackcompiz_mpeg2.mpg
dice a ffmpeg di produrre un file in formato DVD (quindi MPEG-2 come video e come audio AAC) e poi gli dici di piazzarci un video MPEG-2 (ok) ma l'audio mp3 :-k
Credo che i tuoi parametri non siano coerenti col container, per questo xine si arrabbia.
Io quando codifico in MPEG con ffmpeg non specifico mai i codec da usare (al max aggiusto il bitrate dell'audio) per essere sicuro di non avere problemi di conformità agli standard. Per esempio:

Codice: Seleziona tutto

ffmpeg -i file_input.avi file_output.mpg
sono sicuro che mi produca un file video MPEG-1 con audio MPEG-2 (a bitrate un po' basso, ma tranquillamente aggiustabile con -ab).

Codice: Seleziona tutto

ffmpeg -i file_input.avi file_output.vob
produce un file MPEG-2 già pronto per il dvd.

Re: ffmpeg - durata video errata!

Inviato: mer 20 feb 2008, 18:24
da spudhead
414N ha scritto: Credo che i tuoi parametri non siano coerenti col container, per questo xine si arrabbia.
Grazie 414N per i consigli, avevo pensato anch'io alla storia del container!
Comunque se lancio i comandi che mi hai proposto,

Codice: Seleziona tutto

ffmpeg -i file_input.avi file_output.mpg
ffmpeg -i file_input.avi file_output.vob
xine si arrabbia lo stesso (durata nulla)!!!
Capita anche a te???

Re: ffmpeg - durata video errata!

Inviato: mer 20 feb 2008, 18:51
da 414N
:shock:
In effetti capita anche a me. La durata è sempre 00:00:00, però il seeking funziona normalmente.
Curioso... :-k

Re: ffmpeg - durata video errata!

Inviato: mer 20 feb 2008, 19:21
da neongen
con output mpg durata 00:00:00 (ho provato diverse opzioni ma il risultato non cambia)
con output avi ok
:-k

Re: ffmpeg - durata video errata!

Inviato: gio 21 feb 2008, 12:43
da 414N
Forse ho trovato qualcosa di simile ad una risposta su http://xinehq.de/index.php/hackersguide:
What is this metronom thingy?

Metronom serves two purposes:

* Generate vpts (virtual presentation time stamps) from pts (presentation time stamps) for a/v output and synchronization.
* Provide a master clock (system clock reference, scr), possibly provided by external scr plugins (this can be used if some hardware decoder or network server dictates the time).

pts/vpts values are given in 1/90000 sec units. pts values in mpeg streams may wrap (that is, return to zero or any other value without further notice), can be missing on some frames or (for broken streams) may "dance" around the correct values. Metronom therefore has some heuristics built-in to generate clean vpts values which can then be used in the output layers to schedule audio/video output.

The heuristics used in metronom have always been a field of research. Current metronom's implementation tries to stick to pts values as reported from demuxers, that is, vpts may be obtained by a simple operation of vpts = pts + vpts_offset, where vpts_offset takes into account any wraps. Whenever pts is zero, metronom will estimate vpts based on previous values. If a difference is found between the estimated and calculated vpts values by above formula, it will be smoothed by using a "drift correction".