Créer un DVD avec FFmpeg à partir d’un fichier MKV

Créer un DVD avec FFmpeg à partir d'un fichier MKVMalgré ses immenses qualités, je trouve DeVeDe un peu lent. Du coup, j’ai cherché, non sans mal, à encoder directement mes fichiers vidéo en ligne de commande, sous Windows, avec FFmpeg. Au bout du compte, là où il me fallait 45 minutes pour un vidéo de 2 heures avec DeVeDe, je mets moitié moins de temps à l’aide du script que vous trouverez ci-dessous.

Pré-requis

Vous devez tout d’abord installer FFmpeg pour Windows sur votre machine et récupérer une version de dvdauthor.exe soit à partir de l’installation de DeVeDe, dans le répertoire C:\Program Files (x86)\MajorSilence\DeVeDe\bin en embarquant le fichier cygwin1.dll, ou de celle de DVDAuthorGUI, dans le répertoire C:\Program Files (x86)\DVDAuthorGUI\bin.

Le script video2dvd.cmd

L’écriture est beaucoup simple sur Linux ! On y arrive quand même sous Windows. ;+)Le script s’emploie très simplement, de la manière suivante : video2dvd.cmd fichier.mkv. Après avoir créé un fichier dvd.mpg, la commande DVDAuthor crée un dossier dvd dans lequel vous retrouverez les dossiers AUDIO_TS et VIDEO_TS

@echo off
setlocal
rem 
rem Le répertoire d'installation de FFmpeg
rem
set path=%path%;c:\ffmpeg\bin
rem
rem Récupération dans les variables height et width des dimensions de la vidéo avec la commande ffprobe
rem 
FOR /F "usebackq delims=" %%i IN (`"ffprobe -v error -select_streams v:0 -show_entries stream=width -of default=noprint_wrappers=1:nokey=1  %1"`) DO set width=%%i
FOR /F "usebackq delims=" %%i IN (`"ffprobe -v error -select_streams v:0 -show_entries stream=height -of default=noprint_wrappers=1:nokey=1  %1"`) DO set height=%%i
rem
rem Calcul de la hauteur et du décalage de la vidéo
rem 
set /A H=576*16/9*%height%/%width%
set /A Y=(576-%H%)/2
set /A H=576-2*%Y%
rem
rem Création du fichier VOB avec ffmpeg
rem
ffmpeg -y -i %1 -f dvd  -target pal-dvd -vf scale=720:%H%,pad=720:576:0:%Y% -aspect 16:9 dvd.mpg
rem
rem Création du DVD à l'aide de la commande dvdauthor à partir du fichier dvd.xml
rem
set VIDEO_FORMAT=PAL
dvdauthor -x dvd.xml
endlocal

L’exécution de la commande dvdauthor.exe provoque une warning que je ne suis pas parvenu à éradiquer :

WARN: Audio pts for channel 0 moves backwards by 30; please remultiplex input.
WARN: Previous sector: 7221.110 - 7221.174
WARN: Current sector: 7221.173 - 7221.205

Annexe : dvd.xml

Dans le répertoire de la commande dvdauthor.exe, ajoutez le fichier dvd.xml :

<dvdauthor dest="D:\downloads\download\dvd">
    <vmgm />
    <titleset>
        <titles>
    <video format="pal" aspect="16:9" resolution="720x576"></video>
            <pgc>
        <vob file="dvd.mpg" />
            </pgc>
        </titles>
    </titleset>
</dvdauthor>
 

Multimédia / , , ,