Lancer :
dvdbackup -M -p
S’il s’agit d’un DVD commercial, il faudra sans doute installer libdvd-pkg.
Sur mon ordi, il encode plus vite qu’il ne lit la video (~1.05x) ! Parfait.
ffmpeg -i source.mpeg -c:v libx265 -crf 28 -c:a libopus output.mkv
Ici, on intègre en dur les sous-titres, car c’est destiné à la lecture web, mais on devrait plutôt utiliser vtt
Les critères de qualité sont tirés de cette page.
ffmpeg -i marea.mp4 -vf subtitles=marea.srt -s 1280x720 -c:v libvpx -crf 10 -b:v 1M -c:a libvorbis output.webm
ffmpeg -i "concat:VTS_02_0.VOB|VTS_02_1.VOB|VTS_02_2.VOB|VTS_02_3.VOB" -c copy /dev/null
Une commande expliquée :
ffmpeg -probesize 4G -analyzeduration 3600M -i "concat:VTS_01_1.VOB|VTS_01_2.VOB" -map 0:1 -map 0:3 -map 0:4 -metadata:s:s:0 title="Français" -vf yadif -c:v libx264 -crf 23 -c:a libopus -c:s copy "Fruit de la bonne terre.mkv
language=fre serait mieuxPas essayé, mystiq entre dans les dépots Debian Testing en juillet 2020.
https://wiki.x266.mov/blog/av1-for-dummies
A la grande question : est-il possible de recoller des videos de format différents avec ffmpeg, en évitant les transcodages ? Nous devrons répondre par un “houlala, c’est très périlleux”, comme attendu, j’aurai quand même essayé.
Les contraintes techniques :
D’abord, extraire la piste video.
Le filtre bsf:v sert à produire une encapsulation minimale afin que le résultat soit lisible par des lecteurs videos.
ffmpeg -i source.mp4 -vcodec copy -bsf:v h264_mp4toannexb output.h264
Ensuite, relire la video en changeant le framerate.
ffmpeg -r 25.000 -i "${fn%.*}.h264" -vcodec copy "${fn%.*}-frameratefixed.mp4"
Problème constaté : le framerate constaté est 25.001, et non pas 25.000.
Là, c’est le filtre scale, avec quelques calculs pour recentrer l’image et créer d’éventuelles bandes noires. Les variables $W et $H indiquent la largeur et hauteur souhaitées.
ffmpeg -i "$fn" -vf "scale=(iw*sar)*min($W/(iw*sar)\,$H/ih):ih*min($W/(iw*sar)\,$H/ih), pad=$W:$H:($W-iw*min($W/iw\,$H/ih))/2:($H-ih*min($W/iw\,$H/ih))/2" "${fn%.*}-scaled.mp4"
Avec mediainfo, le format de la chaîne est mal décrit dans la doc. On peut isoler les valeurs en répétant des commandes du type :
W=$(mediainfo --Inform="Video;%Width%" "$fn")
Le wiki ffmpeg décrit deux modes. Les deux requièrent que les caractéristiques des videos soient semblables (résolution, framerate). Pour l’un, il éxigera aussi le même codec, l’autre effectuera par contre un transcodage.
Le filtre concat est décrit succintement dans la doc.
Video : éditeurs video, Faire avec les DRM, ffmpeg, Melt, mpv mais seulement avec phonon, sous-titres, Streaming video, Videoconférences, Videoprocessing