Pagina 1 di 1

ffmpeg ed ottimizzazione parametri [RISOLTO]

Inviato: mar 1 ott 2013, 13:57
da Burroughs
Buon pomeriggio a tutti!
Da diversi giorni sono alle prese con un problema banale di cui, però, non riesco a venire a capo...
Ve lo riassumo brevemente: di tanto in tanto scarico dei telefilm dalla rete, con l'obiettivo di riconvertirli per poi vederli in comodità sul salotto di casa.
I file, copiati su chiavetta, vengono dati in pasto ad un PVR LG, dotato di hard disk e di masterizzatore interno.
Premetto che il PVR in questione ha almeno cinque anni, ma debbo ammettere altresì che ha sempre fatto il proprio dovere.
Bene, scarico un file mp4, lancio questa istruzione:

Codice: Seleziona tutto

fmpeg -i /home/alutri/*.mp4 -qscale 0 -vcodec copy -acodec mp3 /home/alutri/output.avi
ma, indipendentemente dal codec video utilizzato (ho provato con libxvid, mpeg1video, mpeg2video, mpeg4 e libx264), il PVR mi informa che non può riprodurre il video.
Il fatto strano, però, è che altri file avi, più o meno "puri", scaricati da altri siti, quindi non sottoposti a riconversione da parte mia, il PVR li legge regolarmente.
Ah, dimenticavo, tutti i file da me riconvertiti i PC di casa li riproducono senza alcun problema.
Cosa mi consigliate di cambiare nell'istruzione che vi ho postato più sopra?

Burroughs.

Re: ffmpeg ed ottimizzazione parametri

Inviato: mar 1 ott 2013, 14:24
da rik70
E così cambia qualcosa?

Codice: Seleziona tutto

ffmpeg -i /home/alutri/*.mp4 -qscale 2 -vcodec mpeg4 -g 250 -acodec mp3 -ab 128k /home/alutri/output.avi
-g 250 = se i fotogrammi al secondo sono 25. Puoi anche provare con 120.

P.s.

Ma perché scegliere il container avi? Legge solo quello?

Pp.ss.

Ma non è che /home/alutri/*.mp4 sono più file?

Re: ffmpeg ed ottimizzazione parametri

Inviato: mar 1 ott 2013, 14:26
da rik70
Ps

prova anche aggiungendo al comando visto sopra:

Codice: Seleziona tutto

-vtag DX50
oppure

Codice: Seleziona tutto

-vtag XVID

Re: ffmpeg ed ottimizzazione parametri

Inviato: mer 2 ott 2013, 14:26
da Burroughs
@rik70: grazie Rick per l'aiuto...
Ho effettuato le prove che mi hai suggerito tu; il problema, purtroppo, non è dato dalle opzioni avanzate ma dal fatto che il mio PVR (o videoregistratore che dir si voglia), non è di bocca buona ed il codec mpeg4 proprio non lo digerisce.
Sì, essendo uno dei primi modelli ad offrire simili funzionalità, legge solo i file avi e quelli, come abbiamo visto, che usano determinati codec video, nemmeno tutti.
Sinceramente, non so che fare.

Burroughs.

Re: ffmpeg ed ottimizzazione parametri

Inviato: mer 2 ott 2013, 14:50
da rik70
Ciao,

perché non fai una cosa: ce la fai a incollare qui le informazioni degli avi che il tuo PVR è in grado riprodurre?

Ad es:

Codice: Seleziona tutto

ffmpeg -i filmato.avi
dovrebbe essere sufficiente.

Solitamente il flag -vtag DX50 dovrebbe ingannare l'hardware in questione, facendogli "credere" che si tratta di un flusso codificato in DivX. Altrimenti lo vede come 'MP4V' e dunque non lo acccetta. Quando ad es. usavo il mio vecchio lettore DVD - che leggeva i divx, manche gli xvid - il trucco funzionava.
Stessa cosa con mencoder, bastava passare come argomento: -ffourcc DX50 oppure -ffourcc XVID.

Ad ogni modo, se riescI a far avere quelle informazione magari capiamo dove sta l'intoppo.

P.s.
Visto che ci sei, incolla anche:

Codice: Seleziona tutto

mplayer -identify -ao null -vo null -endpos 0.5 -really-quiet -v [file.avi]

Re: ffmpeg ed ottimizzazione parametri

Inviato: mer 2 ott 2013, 15:13
da Burroughs
rik70 ha scritto:Ciao,

perché non fai una cosa: ce la fai a incollare qui le informazioni degli avi che il tuo PVR è in grado riprodurre?

Ad es:

Codice: Seleziona tutto

ffmpeg -i filmato.avi
dovrebbe essere sufficiente.
Ok:

Codice: Seleziona tutto

[alutri@andy ~]$ ffmpeg -i attacco.al.potere..cd1.avi                    
ffmpeg version 2.0.1 Copyright (c) 2000-2013 the FFmpeg developers
  built on Sep 29 2013 20:04:37 with gcc 4.8.1 (GCC) 20130725 (prerelease)
  configuration: --enable-swresample --enable-shared --disable-debug --disable-static --prefix=/usr --enable-avresample --enable-fontconfig --enable-gnutls --enable-gpl --enable-libaacplus --enable-libass --enable-libbluray --enable-libcaca --enable-libcdio --enable-libcelt --enable-libdc1394 --enable-libfaac --enable-libfdk-aac --enable-libfreetype --enable-libgme --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libquvi --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libv4l2 --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libxvid --enable-libzmq --enable-nonfree --enable-openal --enable-openssl --enable-pic --enable-vda --enable-version3 --enable-x11grab
  libavutil      52. 38.100 / 52. 38.100
  libavcodec     55. 18.102 / 55. 18.102
  libavformat    55. 12.100 / 55. 12.100
  libavdevice    55.  3.100 / 55.  3.100
  libavfilter     3. 79.101 /  3. 79.101
  libavresample   1.  1.  0 /  1.  1.  0
  libswscale      2.  3.100 /  2.  3.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  3.100 / 52.  3.100
Input #0, avi, from 'attacco.al.potere..cd1.avi':
  Metadata:
    encoder         : VirtualDubMod 1.5.10.2 (build 2540/release)
  Duration: 00:53:38.54, start: 0.000000, bitrate: 1745 kb/s
    Stream #0:0: Video: mpeg4 (Advanced Simple Profile) (XVID / 0x44495658), yuv420p, 720x304 [SAR 1:1 DAR 45:19], 24 tbr, 24 tbn, 24 tbc
    Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, s16p, 128 kb/s
At least one output file must be specified
rik70 ha scritto:P.s.
Visto che ci sei, incolla anche:

Codice: Seleziona tutto

mplayer -identify -ao null -vo null -endpos 0.5 -really-quiet -v [file.avi]
Ecco anche questo:

Codice: Seleziona tutto

[alutri@andy ~]$ mplayer -identify -ao null -vo null -endpos 0.5 -really-quiet -v attacco.al.potere..cd1.avi 
mplayer: could not connect to socket
mplayer: No such file or directory
ID_VIDEO_ID=0
ID_AUDIO_ID=1
ID_CLIP_INFO_NAME0=Software
ID_CLIP_INFO_VALUE0=VirtualDubMod 1.5.10.2 (build 2540/release)
ID_CLIP_INFO_N=1
ID_FILENAME=attacco.al.potere..cd1.avi
ID_DEMUXER=avi
ID_VIDEO_FORMAT=XVID
ID_VIDEO_BITRATE=1608544
ID_VIDEO_WIDTH=720
ID_VIDEO_HEIGHT=304
ID_VIDEO_FPS=24.000
ID_VIDEO_ASPECT=0.0000
ID_AUDIO_FORMAT=85
ID_AUDIO_BITRATE=128000
ID_AUDIO_RATE=0
ID_AUDIO_NCH=0
ID_START_TIME=0.00
ID_LENGTH=3218.54
ID_SEEKABLE=1
ID_CHAPTERS=0
ID_VIDEO_CODEC=ffodivx
ID_AUDIO_BITRATE=128000
ID_AUDIO_RATE=48000
ID_AUDIO_NCH=2
ID_AUDIO_CODEC=mpg123
ID_VIDEO_ASPECT=2.3684
ID_EXIT=EOF

Re: ffmpeg ed ottimizzazione parametri

Inviato: mer 2 ott 2013, 15:19
da rik70
Ok, adesso stessa cosa - è sufficiente ffmpeg - con un avi che non funziona.

Re: ffmpeg ed ottimizzazione parametri

Inviato: mer 2 ott 2013, 16:14
da Burroughs
rik70 ha scritto:Ok, adesso stessa cosa - è sufficiente ffmpeg - con un avi che non funziona.
Ok, cominciamo con:

Codice: Seleziona tutto

[alutri@andy ~]$ ffmpeg -i output.avi                 ffmpeg version 2.0.1 Copyright (c) 2000-2013 the FFmpeg developers
  built on Sep 29 2013 20:04:37 with gcc 4.8.1 (GCC) 20130725 (prerelease)
  configuration: --enable-swresample --enable-shared --disable-debug --disable-static --prefix=/usr --enable-avresample --enable-fontconfig --enable-gnutls --enable-gpl --enable-libaacplus --enable-libass --enable-libbluray --enable-libcaca --enable-libcdio --enable-libcelt --enable-libdc1394 --enable-libfaac --enable-libfdk-aac --enable-libfreetype --enable-libgme --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libquvi --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libv4l2 --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libxvid --enable-libzmq --enable-nonfree --enable-openal --enable-openssl --enable-pic --enable-vda --enable-version3 --enable-x11grab
  libavutil      52. 38.100 / 52. 38.100
  libavcodec     55. 18.102 / 55. 18.102
  libavformat    55. 12.100 / 55. 12.100
  libavdevice    55.  3.100 / 55.  3.100
  libavfilter     3. 79.101 /  3. 79.101
  libavresample   1.  1.  0 /  1.  1.  0
  libswscale      2.  3.100 /  2.  3.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  3.100 / 52.  3.100
Input #0, avi, from 'output.avi':
  Metadata:
    encoder         : Lavf55.12.100
  Duration: 00:50:45.89, start: 0.000000, bitrate: 1811 kb/s
    Stream #0:0: Video: mpeg4 (Simple Profile) (FMP4 / 0x34504D46), yuv420p, 720x406 [SAR 1:1 DAR 360:203], 25 tbr, 25 tbn, 25 tbc
    Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, s16p, 128 kb/s
At least one output file must be specified
e continuiamo con:

Codice: Seleziona tutto

[alutri@andy ~]$ mplayer -identify -ao null -vo null -endpos 0.5 -really-quiet -v output.avi                 
mplayer: could not connect to socket
mplayer: No such file or directory
ID_VIDEO_ID=0
ID_AUDIO_ID=1
ID_CLIP_INFO_NAME0=Software
ID_CLIP_INFO_VALUE0=Lavf55.12.100
ID_CLIP_INFO_N=1
ID_FILENAME=output.avi
ID_DEMUXER=avi
ID_VIDEO_FORMAT=FMP4
ID_VIDEO_BITRATE=1670936
ID_VIDEO_WIDTH=720
ID_VIDEO_HEIGHT=406
ID_VIDEO_FPS=25.000
ID_VIDEO_ASPECT=1.7734
ID_AUDIO_FORMAT=85
ID_AUDIO_BITRATE=128000
ID_AUDIO_RATE=0
ID_AUDIO_NCH=0
ID_START_TIME=0.00
ID_LENGTH=3045.84
ID_SEEKABLE=1
ID_CHAPTERS=0
ID_VIDEO_CODEC=ffodivx
ID_AUDIO_BITRATE=128000
ID_AUDIO_RATE=48000
ID_AUDIO_NCH=2
ID_AUDIO_CODEC=mpg123
ID_VIDEO_ASPECT=1.7734
ID_EXIT=EOF

Re: ffmpeg ed ottimizzazione parametri

Inviato: mer 2 ott 2013, 16:28
da rik70
Ok cito la sola parte che interessa:
Stream #0:0: Video: mpeg4 (Simple Profile) (FMP4 / 0x34504D46), yuv420p, 720x406 [SAR 1:1 DAR 360:203], 25 tbr, 25 tbn, 25 tbc
[....]
ID_VIDEO_FORMAT=FMP4
Come dicevo prima (però ho sbagliato scrivendo, perdonami) non lo vede perché non riconosce il formato video - ID_VIDEO_FORMAT=FMP4, mentre in quello che funziona è: ID_VIDEO_FORMAT=XVID. Per l'output di ffmpeg vale lo stesso discorso.

Il problema lo risolvi passando a ffmpeg l'argomento -vtag XVID.

Prova e vedrai che funziona. Usa -vcodec mpeg4 e -qscale 2 o 4. Nelle nuove versioni di ffmpeg qscale è deprecato,anche se sembra prenderlo ugualmente:
al suo posto magari metti -q:v [valore]. Il valore 0 non è consigliabile.

Fai sapere che se non va ancora - deve! - se ne prova un'altra.

Ciao

Edit:

-vtag XVID mettilo DOPO -vcodec [etc,etc.]

Re: ffmpeg ed ottimizzazione parametri

Inviato: mer 2 ott 2013, 17:16
da Burroughs
rik70 ha scritto:Edit: -vtag XVID mettilo DOPO -vcodec [etc,etc.]
Mai precisazione fu più utile, rik: ponendo -vtag immediatamente dopo -vcodec, sono riuscito finalmente a visualizzare quanto mi interessava! :)
Ti ringrazio veramente per la pazienza e la competenza che hai dimostrato; se passi da Napoli, ti offro una birra... :D
Buona serata,

Burroughs.

Re: ffmpeg ed ottimizzazione parametri

Inviato: mer 2 ott 2013, 17:25
da rik70
Burroughs ha scritto: se passi da Napoli, ti offro una birra... :D
Buona serata,

Burroughs.
Senz'altro, buona anche a te.

Ciao