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
ndemou
la source
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