Comment faire pour que avconv / ffmpeg produise une vidéo avec des fichiers tbn, tbc spécifiques


1

Mon père ne peut utiliser qu'un ancien éditeur de vidéo (Pinnacle Studio 12) très pointilleux sur les fichiers vidéo importés. Voici la sortie d'avprobe de l'une des vidéos qu'il parvient à importer:

encoder: Lavf53.24.2    bitrate: 9884 kb/s
Stream #0.0: Video: mpeg4 (Simple Profile), yuv420p, 
       1920x1080 [PAR 9:16 DAR 1:1], 25 tbn, 25 tbc

Je souhaite utiliser un utilitaire Linux tel que avconv / ffmpeg pour convertir tous les fichiers vidéo de mon père au format ci-dessus. Après quelques heures de lecture et de tests, j'ai pu faire correspondre toutes les propriétés du flux vidéo à l'exception de tbn, tbc et bitrate (voir la note n ° 1 avec la commande que j'utilise). Voici ce que avprob rapporte pour les vidéos que je crée:

bitrate: 36617 kb/s
Stream #0.0: Video: mpeg4 (Simple Profile), yuv420p, 
       1920x1080 [PAR 9:16 DAR 1:1], 25 fps, 25 tbr, 90k tbn, 65535 tbc

Et voici un diff pour vous épargner le problème de la vérification croisée des deux sorties:

ORIG: bitrate:  9884 kb/s                  25 tbn,    25 tbc
MINE: bitrate: 36617 kb/s 25 fps, 25 tbr, 90k tbn, 65535 tbc

À ce stade, je suis coincé. J'ai du mal à trouver et à comprendre ce que sont vraiment tbn, tbr et tbc. Je me demande également pourquoi avconv ignore le paramètre -b: v 9756, mais je pense que je vais résoudre ce problème avec un peu plus de tests sur Google.

METTRE À JOUR

J'ai essayé la même commande sur mon ordinateur portable qui exécute Ubuntu 12.04 et avconv 0.8.16-4: 0.8.16 et il produit une vidéo qui a exactement les mêmes propriétés! Voir la note n ° 2. Bien sûr, il est très difficile de déclasser le PC de mon père d'Ubuntu 14.04 à 12.04, je suis donc toujours à la recherche d'une solution qui fonctionnera là-bas. [Pour être franc, il y a une différence dans le codec audio dans la commande qui s'exécute sur mon PC. Je devais remplacer mp3 avec libmp3lame car pour une raison quelconque, le premier ne fonctionne pas.]


Note 1 Voici la commande que j'utilise (sur Ubuntu 14.04):

avconv -i GOPR0392.MP4 \
       -codec:a mp3 -b:a 128k -ar:a 44100  \
       -codec:v libxvid -aspect:v 1 -b:v 9756k   \
       test.avi

Et voici le résultat:

avconv version 9.16-6:9.16-0ubuntu0.14.04.1, Copyright (c) 2000-2014 the Libav developers
  built on Aug 10 2014 18:16:02 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x11f8060] Non-increasing DTS in stream 3: packet 2 with DTS 0, packet 3 with DTS 0
...
...
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x11f8060] Non-increasing DTS in stream 3: packet 54 with DTS 0, packet 55 with DTS 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x11f8060] Non-increasing DTS in stream 3: packet 55 with DTS 0, packet 56 with DTS 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x11f8060] Non-increasing DTS in stream 3: packet 56 with DTS 0, packet 57 with DTS 0
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'GOPR0392.MP4':
  Metadata:
    major_brand     : mp41
    minor_version   : 538120216
    compatible_brands: mp41
    creation_time   : 2015-02-08 01:30:55
  Duration: 00:03:02.33, start: 0.000000, bitrate: 45149 kb/s
    Stream #0.0(eng): Video: h264 (High), yuvj420p, 1920x1080 [PAR 1:1 DAR 16:9], 45007 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
    Metadata:
      creation_time   : 2015-02-08 01:30:55
    Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, fltp, 128 kb/s
    Metadata:
      creation_time   : 2015-02-08 01:30:55
    Stream #0.2(eng): Data: tmcd / 0x64636D74
    Metadata:
      creation_time   : 2015-02-08 01:30:55
    Stream #0.3(eng): Data: fdsc / 0x63736466, 9 kb/s
    Metadata:
      creation_time   : 2015-02-08 01:30:55
File 'test.avi' already exists. Overwrite ? [y/N] y
Output #0, avi, to 'test.avi':
  Metadata:
    major_brand     : mp41
    minor_version   : 538120216
    compatible_brands: mp41
    creation_time   : 2015-02-08 01:30:55
    ISFT            : Lavf54.20.4
    Stream #0.0(eng): Video: libxvid, yuv420p, 1920x1080 [PAR 9:16 DAR 1:1], q=2-31, 9756 kb/s, 90k tbn, 90k tbc
    Metadata:
      creation_time   : 2015-02-08 01:30:55
    Stream #0.1(eng): Audio: libmp3lame, 44100 Hz, stereo, fltp, 128 kb/s
    Metadata:
      creation_time   : 2015-02-08 01:30:55
Stream mapping:
  Stream #0:0 -> #0:0 (h264 -> libxvid)
  Stream #0:1 -> #0:1 (aac -> libmp3lame)
Press ctrl-c to stop encoding
^Cframe= 1531 fps= 11 q=2.0 Lsize=  261134kB time=61.18 bitrate=34966.6kbits/s    
video:131019kB audio:955kB global headers:0kB muxing overhead 97.868984%
Received signal 2: terminating. 

Note 2 La même commande depuis mon ordinateur portable (Ubuntu 12.04):

avconv -i GOPR0399.MP4 -codec:a libmp3lame -b:a 128k -ar:a 44100    -codec:v libxvid -aspect:v 1 -b:v 9756k   test.avi
avconv version 0.8.16-4:0.8.16-0ubuntu0.12.04.1, Copyright (c) 2000-2014 the Libav developers
built on Sep 16 2014 18:35:14 with gcc 4.6.3
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'GOPR0399.MP4':
Metadata:
    major_brand     : mp41
    minor_version   : 538120216
    compatible_brands: mp41
    creation_time   : 2015-02-11 17:53:34
Duration: 00:00:29.48, start: 0.000000, bitrate: 45176 kb/s
    Stream #0.0(eng): Video: h264 (High), yuvj420p, 1920x1080 [PAR 1:1 DAR 16:9], 45028 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
    Metadata:
    creation_time   : 2015-02-11 17:53:34
    Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16, 128 kb/s
    Metadata:
    creation_time   : 2015-02-11 17:53:34
    Stream #0.2(eng): Data: tmcd / 0x64636D74, 0 kb/s
    Metadata:
    creation_time   : 2015-02-11 17:53:34
    Stream #0.3(eng): Data: fdsc / 0x63736466, 9 kb/s
    Metadata:
    creation_time   : 2015-02-11 17:53:34
File 'test.avi' already exists. Overwrite ? [y/N] y
Incompatible pixel format 'yuvj420p' for codec 'libxvid', auto-selecting format 'yuv420p'
[buffer @ 0x9bd81a0] w:1920 h:1080 pixfmt:yuvj420p
[avsink @ 0x9bc89c0] auto-inserting filter 'auto-inserted scaler 0' between the filter 'src' and the filter 'out'
[scale @ 0x9bc8520] w:1920 h:1080 fmt:yuvj420p -> w:1920 h:1080 fmt:yuv420p flags:0x4
Output #0, avi, to 'test.avi':
Metadata:
    major_brand     : mp41
    minor_version   : 538120216
    compatible_brands: mp41
    creation_time   : 2015-02-11 17:53:34
    ISFT            : Lavf53.21.1
    Stream #0.0(eng): Video: mpeg4, yuv420p, 1920x1080 [PAR 9:16 DAR 1:1], q=2-31, 9756 kb/s, 25 tbn, 25 tbc
    Metadata:
    creation_time   : 2015-02-11 17:53:34
    Stream #0.1(eng): Audio: libmp3lame, 44100 Hz, stereo, s16, 128 kb/s
    Metadata:
    creation_time   : 2015-02-11 17:53:34
Stream mapping:
Stream #0:0 -> #0:0 (h264 -> libxvid)
Stream #0:1 -> #0:1 (aac -> libmp3lame)
Press ctrl-c to stop encoding
frame=  737 fps= 14 q=3.0 Lsize=   36119kB time=29.48 bitrate=10037.0kbits/s    
video:35605kB audio:461kB global headers:0kB muxing overhead 0.149473%

Et maintenant, avprobe indique exactement les mêmes propriétés vidéo (le débit est légèrement différent, mais je suppose que cela est prévu):

avprobe test.avi 
avprobe version 0.8.16-4:0.8.16-0ubuntu0.12.04.1, Copyright (c) 2007-2014 the Libav developers
built on Sep 16 2014 18:35:14 with gcc 4.6.3
Input #0, avi, from 'test.avi':
Metadata:
    encoder         : Lavf53.21.1
Duration: 00:00:29.49, start: 0.000000, bitrate: 10032 kb/s
    Stream #0.0: Video: mpeg4 (Simple Profile), yuv420p, 1920x1080 [PAR 9:16 DAR 1:1], 25 tbr, 25 tbn, 25 tbc
    Stream #0.1: Audio: mp3, 44100 Hz, stereo, s16, 128 kb/s

Veuillez également afficher l'intégralité de la sortie de ligne de commande.
— slhck

Ajout de la sortie complète de la commande avconv. Merci de regarder ça slhck.
— ndemou

Hmm. Et la vidéo générée le 12.04 fonctionne avec Pinnacle? Cas étrange. Je ne pense pas que vous puissiez définir les valeurs explicitement. Vous pourriez peut-être essayer avec une version statique récente de ffmpeg à partir de leur page de téléchargement, juste pour vérifier?
— slhck

Malheureusement, je dois attendre au moins demain que mon père le teste. Argh!
— ndemou

Aucune vidéo générée le 12.04 ne ne pas fonctionne avec Pinnacle même s'il a les mêmes propriétés (selon avprob) que celui qui fonctionne.
— ndemou
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.