Encodage avorté avec handbrake [résolu]

S’il y a un problème de fichier source plus ou moins corrompu (images sautées, erreurs de timing,…) une piste est de lancer ffmpeg en ligne de commande. Il est un peu bavard, et tente de corriger ce qui est possible. La capacité de correction de ffmpeg est paramétrable, mais les docs sur le sujet sont loin d’être simples et à la portée du premier utilisateur venu (comme moi).

Ouep, je crois que je vais poster mon problème sur le forum de Handbrake, et je vous tiendrais au courant. Parce que j’ai quand même pas mal d’erreurs dans mon log. L’installation de libdvdcss2 a résolu l’erreur la concernant, mais pas les autres.

Arf, sur leur forum il faut attendre qu’un admin valide le topique avant qu’il soit publié, ceci afin d’éviter le problème des pubs.
Je vais devoir attendre.
De toute façon si le problème est résolu je viendrais poster la solution ici.

Sinon il n’y aurait pas un expert de ffmpeg sur ce forum ?
J’aimerais tester avec ffmpeg pour voir ce que ça donne.
Alors voilà ce que j’aimerais comme paramètres:

Input: plusieurs fichiers.vob
Vidéo: conserver l’aspect ratio, encoder en x265
Audio: encoder en aac 320kbps
Output: conteneur mkv

VIDEO_TS# ls -alrt
total 2102684
drwxr-xr-x 3 slack slack       4096 juin   2 16:53 ..
-rw-r--r-- 1 slack slack      30720 juin   2 19:21 VTS_01_0.IFO
-rw-r--r-- 1 slack slack      30720 juin   2 19:21 VTS_01_0.BUP
-rw-r--r-- 1 slack slack     116736 juin   2 19:21 VIDEO_TS.VOB
-rw-r--r-- 1 slack slack      16384 juin   2 19:21 VIDEO_TS.IFO
-rw-r--r-- 1 slack slack      16384 juin   2 19:21 VIDEO_TS.BUP
-rw-r--r-- 1 slack slack     116736 juin   2 20:33 VTS_02_0.VOB
-rw-r--r-- 1 slack slack      18432 juin   2 20:33 VTS_02_0.IFO
-rw-r--r-- 1 slack slack      18432 juin   2 20:33 VTS_02_0.BUP
-rw-r--r-- 1 slack slack    5111808 juin   2 20:33 VTS_01_1.VOB
-rw-r--r-- 1 slack slack     116736 juin   2 20:33 VTS_03_0.VOB
-rw-r--r-- 1 slack slack      57344 juin   2 20:33 VTS_03_0.IFO
-rw-r--r-- 1 slack slack      57344 juin   2 20:33 VTS_03_0.BUP
-rw-r--r-- 1 slack slack     278528 juin   2 20:33 VTS_02_1.VOB
drwxr-xr-x 2 slack slack       4096 juin   2 20:33 .
-rw-r--r-- 1 slack slack 1073565696 juin   2 20:46 VTS_03_1.VOB
-rw-r--r-- 1 slack slack 1073565696 juin   2 20:46 VTS_03_2.VOB

Voilà c’est tout ce qu’il me faut.

Salut
Pour analyser un fichier vidéo, on peut utiliser l’outil de la suite ffmpeg: ffprobe

Exemple


~/Vidéos$ ffprobe te3.mp4
ffprobe version 3.4.2-2+b1 Copyright (c) 2007-2018 the FFmpeg developers
  built with gcc 7 (Debian 7.3.0-16)
  configuration: --prefix=/usr --extra-version=2+b1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
  WARNING: library configuration mismatch
  avcodec     configuration: --prefix=/usr --extra-version=2+b1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared --enable-version3 --disable-doc --disable-programs --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libtesseract --enable-libvo_amrwbenc
  libavutil      55. 78.100 / 55. 78.100
  libavcodec     57.107.100 / 57.107.100
  libavformat    57. 83.100 / 57. 83.100
  libavdevice    57. 10.100 / 57. 10.100
  libavfilter     6.107.100 /  6.107.100
  libavresample   3.  7.  0 /  3.  7.  0
  libswscale      4.  8.100 /  4.  8.100
  libswresample   2.  9.100 /  2.  9.100
  libpostproc    54.  7.100 / 54.  7.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'te3.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf57.83.100
  Duration: 00:00:08.41, start: 0.033991, bitrate: 4751 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1024x576, 4620 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: ac3 (ac-3 / 0x332D6361), 44100 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
    Side data:
      audio service type: main
```

Oui mais quelle est la commande lorsqu’on a plusieurs fichiers.vob ?

Non sérieusement je préférerais tester un encodage avec ffmpeg comme dit dans mon post ci-dessus.

Ce que j’indique ce n’est evidemment pas pour encoder, il s’agit d’analyser un fichier vidéo, vob ou autre, pour vérifier qu’il n’est pas défectueux AVANT la transformation par un autre outil… comprenne qui pourra :joy:

Oui mais quelle est la commande lorsqu’on a plusieurs fichiers.vob ?

Bon j’étais partie pour analyser tous les fichiers.vob mais dès le premier il y a un message d’erreur:

VIDEO_TS# ffprobe VIDEO_TS.VOB
ffprobe version 3.4.2-2+b1 Copyright (c) 2007-2018 the FFmpeg developers
  built with gcc 7 (Debian 7.3.0-16)
  configuration: --prefix=/usr --extra-version=2+b1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
  libavutil      55. 78.100 / 55. 78.100
  libavcodec     57.107.100 / 57.107.100
  libavformat    57. 83.100 / 57. 83.100
  libavdevice    57. 10.100 / 57. 10.100
  libavfilter     6.107.100 /  6.107.100
  libavresample   3.  7.  0 /  3.  7.  0
  libswscale      4.  8.100 /  4.  8.100
  libswresample   2.  9.100 /  2.  9.100
  libpostproc    54.  7.100 / 54.  7.100
Input #0, mpeg, from 'VIDEO_TS.VOB':
  Duration: 00:00:00.10, start: 0.233567, bitrate: 9329 kb/s
    Stream #0:0[0x1bf]: Data: dvd_nav_packet
    Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, top first), 720x480 [SAR 8:9 DAR 4:3], 2000 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0:2[0x20]: Subtitle: dvd_subtitle
Unsupported codec with id 100357 for input stream 0

edit: même erreur pour les autres fichiers.vob

on dirait que le flux audio n’est pas décodé par ffprobe

Est-ce que la lecture est bonne avec

ffplay VIDEO_TS.VOB

Tu peux aussi ouvrir avec VLC pour voir ce qu’il décode
dans le menu VLC
Outils -> Informations sur les codecs

Pour concaténer (fusionner) plusieurs fichiers, un exemple pour fusionner des clips issus d’un appareil de photo avec extension .MOV (exemple extrait de l’un de mes petits scripts de traitement de mes clips persos) :

$ printf “file ‘%s’\n” *.MOV > films.txt
$ ffmpeg -f concat -i films.txt -c:v libx264 -preset medium -crf 30 -c:a aac film.mp4

La première ligne crée un fichier texte avec la liste des fichiers à concaténer (mis dans un répertoire de travail, par exemple). Ce fichier possède la syntaxe qui va bien pour l’option “concat” de ffmpeg de la seconde ligne.
Cette seconde ligne crée une vidéo mp4.
Les fichiers sources doivent évidemment être nommés de façon à apparaitre dans le bon ordre.

Cela ne supprime évidemment pas la nécessité de visionner (avec vlc ou ffplay) les fichiers sources, ne serait-ce que pour éviter les images fixes des menus du dvd ainsi “transcodé” (pour être poli).

Ok merci pour vos réponses.
Sur le forum de Handbrake, on m’a dit que mon dvd contient une erreur et que Handbrake stoppe lorsqu’il arrive dessus car il l’interprète comme étant la fin de la vidéo.
Il faut que j’essaie avec ffmpeg voilà tout.

J’ai testé avec plusieurs fichiers.vob et ça lit correctement.

Un oubli, la source des indications de concaténation :
https://trac.ffmpeg.org/wiki/Concatenate

Pour ce qui est des options de ffmpeg, il m’est arrivé qu’une vidéo visionnée sans soucis sur le PC soit illisible sur le smartphone

ça peut se contrôler grâce à l’option -profile:v

  • Pour Video: h264 (Constrained Baseline)
-profile:v baseline -level 3.0 
  • Pour Video: h264 (High)
-profile:v high -level 4.0 
  • Pour Video: h264 (Main)
-profile:v Main -level 4.0 

Exemple

ffmpeg -i emily.vob -profile:v baseline -level 3.0  emily-baseline3.mp4

Le baseline est toujours bien lu

Un site pour générer la ligne de commande, généralement les options avconv vont bien dans ffmpeg

https://fr.jeffprod.com/avconv.php

Avidemux sait concaténer des fichiers dont le nom à la même racine

Exemple j’ai tous ces fragments

~/Vidéos$ ls vod4*
vod4-10.ts  vod4-14.ts  vod4-18.ts  vod4-21.ts  vod4-5.ts  vod4-9.ts
vod4-11.ts  vod4-15.ts  vod4-19.ts  vod4-2.ts   vod4-6.ts
vod4-12.ts  vod4-16.ts  vod4-1.ts   vod4-3.ts   vod4-7.ts
vod4-13.ts  vod4-17.ts  vod4-20.ts  vod4-4.ts   vod4-8.ts

Dans Avidemux, je fais ouvrir du 1er fichier vod4-1.ts

Avidemux me propose automatiquement d’ajouter tous les autres

J’ai donc un seul fichier vidéo que je peux traiter avec Avidemux et sauvegarder en entier dans un autre format

Non mais j’ai trouvé d’où vient le problème.
En faite c’est un mauvais rip.
Sur tout les fichiers.vob, il y en a que deux qui contiennent de la vidéo, et ces deux fichiers.vob durent chacun 16 minutes et quelques secondes.
Moi je disais ci-dessus que j’avais une vidéo de 33 minutes à la fin de l’encodage. 2x16 = 32 + les quelques secondes = 33
Pourtant Handbrake me détecte bien une vidéo de 58 minutes de 13 chapitres. Je ne sais pas comment il le détecte mais il le fait =)
Sur le 2ème dvd (c’est un pack de 2 dvd) c’est encore pire, il manque un fichier.vob, ça passe de VTS_03_3.VOB à VTS_03_5.VOB

Bref c’est un mauvais rip. C’est la première fois que je télécharge un mauvais rip, fallait bien que ça arrive un jour.
Donc il n’y a aucun bug de Handbrake, il a bien fait son travail.

Merci pour votre aide et en particulier grandtoubab pour ses derniers posts.

Ah non, finalement, c’est un bug de Deluge…
Il ne m’a pas tout téléchargé, c’est étrange…
Il manque plusieurs fichiers.vob, pourtant le téléchargement est bien à 100%
Je relance le téléchargement, je verrais bien, si ça refait la même j’irais poster le bug sur le forum de Deluge. En tout cas c’est la première fois qu’il me fait ça.

Ah mon avis c’est plutôt un hacker qui s’est amusé a supprimer des fichiers.vob sur mon pc, parce qu’il ne doit pas aimer le p2p. Je ne crois pas à un bug de Deluge.
En tout cas là je l’ai re-téléchargé et réencodé et la vidéo fait bien 58 minutes comme le disait handbrake lorsqu’il n’avait pas tous les vob.