ffmpeg - durata video errata!

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
spudhead
Linux 1.x
Linux 1.x
Messaggi: 130
Iscritto il: sab 17 dic 2005, 0:17
Slackware: 12.2
Kernel: 2.6.28.7
Desktop: KDE 3.5.10
Località: Ancona, Italy

ffmpeg - durata video errata!

Messaggio 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

birg81
Linux 3.x
Linux 3.x
Messaggi: 760
Iscritto il: lun 16 gen 2006, 10:57
Nome Cognome: Biagio
Slackware: 12.2
Kernel: 3.4.7
Desktop: LxDE
Distribuzione: ArchLinux
Località: Castellammare di Stabia (NA)
Contatta:

Re: ffmpeg - durata video errata!

Messaggio da birg81 »

scusa ma i video in formato flv non fai prima a convertirli con il sito http://media-convert.com/conversione/ ?

Avatar utente
spudhead
Linux 1.x
Linux 1.x
Messaggi: 130
Iscritto il: sab 17 dic 2005, 0:17
Slackware: 12.2
Kernel: 2.6.28.7
Desktop: KDE 3.5.10
Località: Ancona, Italy

Re: ffmpeg - durata video errata!

Messaggio 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!

birg81
Linux 3.x
Linux 3.x
Messaggi: 760
Iscritto il: lun 16 gen 2006, 10:57
Nome Cognome: Biagio
Slackware: 12.2
Kernel: 3.4.7
Desktop: LxDE
Distribuzione: ArchLinux
Località: Castellammare di Stabia (NA)
Contatta:

Re: ffmpeg - durata video errata!

Messaggio 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!!!!

Avatar utente
414N
Iper Master
Iper Master
Messaggi: 2924
Iscritto il: mer 13 feb 2008, 16:19
Slackware: 15.0
Kernel: 5.15.19
Desktop: KDE5
Località: Bulagna
Contatta:

Re: ffmpeg - durata video errata!

Messaggio 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.

Avatar utente
spudhead
Linux 1.x
Linux 1.x
Messaggi: 130
Iscritto il: sab 17 dic 2005, 0:17
Slackware: 12.2
Kernel: 2.6.28.7
Desktop: KDE 3.5.10
Località: Ancona, Italy

Re: ffmpeg - durata video errata!

Messaggio 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???

Avatar utente
414N
Iper Master
Iper Master
Messaggi: 2924
Iscritto il: mer 13 feb 2008, 16:19
Slackware: 15.0
Kernel: 5.15.19
Desktop: KDE5
Località: Bulagna
Contatta:

Re: ffmpeg - durata video errata!

Messaggio da 414N »

:shock:
In effetti capita anche a me. La durata è sempre 00:00:00, però il seeking funziona normalmente.
Curioso... :-k

Avatar utente
neongen
Packager
Packager
Messaggi: 827
Iscritto il: ven 25 mag 2007, 12:37
Nome Cognome: Enrico
Slackware: 14.0_64
Kernel: 3.4.4
Desktop: KDE 4.5.5
Distribuzione: Maemo 5
Contatta:

Re: ffmpeg - durata video errata!

Messaggio da neongen »

con output mpg durata 00:00:00 (ho provato diverse opzioni ma il risultato non cambia)
con output avi ok
:-k

Avatar utente
414N
Iper Master
Iper Master
Messaggi: 2924
Iscritto il: mer 13 feb 2008, 16:19
Slackware: 15.0
Kernel: 5.15.19
Desktop: KDE5
Località: Bulagna
Contatta:

Re: ffmpeg - durata video errata!

Messaggio 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".

Rispondi