This website is released under |
Commandes FFmpeg utiliséesCompétences élémentaires# 0. Choisir le bureau comme espace de travail. # # ... afin de retrouver facilement les fichiers. # * sous macOS et Linux: cd ~/Desktop # * sous Windows: cd Desktop # Générer les fichiers de travail. # 1. L'ensemble de Mandelbrot est une fractale qui permet de détecter aisément # des erreurs de codage. Ceci nous donne le fichier vidéo d'exercice. # # Il est essentiel de respecter scrupuleusement la syntaxe! Le nom du # paramètre est précédé par un tiret (-) et sa valeur est séparée par un # espace. # # Paramètres: # -lafvi choisir en entrée la fonction Mandelbrot incluse dans FFmpeg # -t durée en secondes (on peut aussi utiliser un timecode) # -c:v choisir le codec video rawvideo, c'est-à-dire de la vidéo non # compressée en 8 bit # -pix_fmt choisir l'encodage YUV 4:2:2 des pixels [Y'CBCR 4:2:2 est la # désignation correcte] # chemin, nom et extension du fichier de sortie (noter qu'il n'y # a pas de -o) ffmpeg -lavfi mandelbrot -t 10 -c:v rawvideo -pix_fmt uyvy422 mandelbrot.avi # Visualiser le fichier. ffplay mandelbrot.avi # 2. La note la nous donne le fichier audio d'exercice. # # Paramètres: # -lafvi choisir en entrée la fonction sinusoïdale include dans FFmpeg # -t durée en secondes (on peut aussi utiliser un timecode) # chemin, nom et extension du fichier de sortie (pas de -o) ffmpeg -lavfi aevalsrc="sin(440*2*PI*t)" -t 10 la.wav # Écouter le fichier. ffplay la.wav # 3. Joindre les fichiers image et son générés. # # Paramèters: # -i chemin, nom et extension du premier fichier d'entrée # -i chemin, nom et extension du deuxième fichier d'entrée # chemin, nom et extension du fichier de sortie (pas de -o) ffmpeg -i mandelbrot.avi -i la.wav mandela.avi mandela.avi # Visualiser le fichier. ffplay mandela.avi # 4. Extraire des fichiers leurs métadonnées techniques. # # Paramèters: # -show_format extraire du fichier les métadonnées du conteneur # -show_streams extraire du fichier les métadonnées de chaque codec # -print_format choisir le format de sortie ffprobe mandela.avi ffprobe -show_format mandela.avi ffprobe -show_streams mandela.avi ffprobe -show_format -show_streams mandela.avi ffprobe -show_format -show_streams -print_format flat mandela.avi ffprobe -show_format -show_streams -print_format json mandela.avi ffprobe -show_format -show_streams -print_format xml mandela.avi # Cf. avpres.net/FFmpeg/probe_json # 5. Modifier le conteneur # # Paramèters: # -c dans cet exemple nous choisissons de copier («copy») le codec ffmpeg -i mandelbrot.avi -c copy mandelbrot.mov # 6. Calculer l'empreinte numérique de chaque image du fichier vidéo # # Paramètres: # -f calculer l'empreinte numérique MD5 à l'aider de la fonction framemd5 ffmpeg -i mandelbrot.avi -f framemd5 mandelbrot_avi_framesmd5.txt ffmpeg -i mandelbrot.mov -f framemd5 mandelbrot_mov_framesmd5.txt # Vérifier que les deux empreintes numériques soient bien identiques: # * sous macOS et Linux: diff mandelbrot_avi_framesmd5.txt mandelbrot_mov_framesmd5.txt # * sous Windows: fc mandelbrot_avi_framesmd5.txt mandelbrot_mov_framesmd5.txt # 7. Visualiser des fichiers image (DPX, TIFF, etc.) # # L'expression régulière %06d décrit des chiffres (d = digit) de longueur 6, # précédés, si nécessaire, par des 0. Ceci permet de traiter en ordre # croissant de nombreux fichiers fichiers contenus dans un dossier. # L'expression régulière doit évidemment correspondre au schéma de nommage. ffplay DUFAY_TIFF/Dufay_%06d.tif # Cf. avpres.net/FFmpeg/play_sq Compétences générales# NOTE: La barre oblique inversée (\) est utilisée pour indiquer que la # commande continue à la ligne suivante. Les commandes complexes sont # données sur plusieurs lignes, afin qu'elles soient plus lisibles. # 8. Générer un fichier mezzanine au format ProRes 422 HQ à partir du master de # conservation au format TIFF. # # Paramètres: # -f forcer l'utilisation de image2 pour une meilleure qualité de # l'image # -framerate fixer la cadence à 24 images par seconde # NOTE: Les deux paramètres précédents doivent précéder le # fichier d'entrée, puisqu'ils sont appliqués à cette entrée # -i chemin, nom et extension of the input file # L'expression régulière %06d décrite ci-dessus. # -c:v choisir le codec vidéo ProRes # -profile:v le profil vidéo 3 de ProRes correspond à 422 HQ # -filter:v filtrer le flux vidéo: # * mettre à l'échelle # Nous préférons utiliser l'algorithme de Lanczos, qui est # plus lent, mais donne un meilleur résultat, plutôt que # l'algorithme bilinéaire par défaut. # * insérer le format 4:3 dans le format 16:9, en ajoutant # latéralement des bandes noires (pillar-box) ffmpeg \ -f image2 \ -framerate 24 \ -i DUFAY_TIFF/Dufay_%06d.tif \ -c:v prores_ks \ -profile:v 3 \ -filter:v "scale=1440:1080:flags=lanczos, pad=1920:1080:240:0" \ Dufay_ProRes.mov # Cf. avpres.net/FFmpeg/sq_ProRes # 9. Créer un fichier d'accès H.264 à partir du master de conservation en TIFF # # Paramètres: # -c:v choisir le codec vidéo H.264, en utilisant la librairie libx264 # -preset choisir le configuration veryslow, afin que la qualité soit # meilleure # -qp un paramètre de quantisation de 18 donne une compression non # détectable à l'oeil nu («visually lossless») ffmpeg \ -f image2 \ -framerate 24 \ -i DUFAY_TIFF/Dufay_%06d.tif \ -c:v libx264 \ -preset veryslow \ -qp 18 \ -filter:v "scale=1440:1080:flags=lanczos, pad=1920:1080:240:0" \ -pix_fmt yuv420p \ Dufay_H264_1.mp4 # Cf. avpres.net/FFmpeg/sq_H264 # 10. Créer un fichier d'accès H.264 à partir du fichier mezzanine en # ProRes 422 HQ # # -an empêche la creation d'une piste sonore vide («audio no») ffmpeg \ -i Dufay_ProRes.mov \ -c:v libx264 \ -preset veryslow \ -qp 18 \ -pix_fmt yuv420p \ -an \ Dufay_H264_2.mp4 # Cf. avpres.net/FFmpeg/im_H264 Compétences étendues# 11. Fichier de différence (fichier delta) # # utiliser divers filtres, appliqués à différentes entrées («complex # filter»): # * le fichiers d'entrée sont numérotés à partir de zéro # * les différents filtres sont séparés par des points-virgules # * les éléments d'un même filtre sont séparés par des virgules # * les noms des entrées et sorties de filtre sont mis entre parenthèses # carrées ffmpeg \ -i Dufay_H264_1.mp4 \ -i Dufay_H264_2.mp4 \ -filter_complex \ "[1]format=yuva444p, \ lut=c3=128, \ negate[1_with_alpha_channel]; \ [0][1_with_alpha_channel]overlay" \ Dufay_H264_delta.mp4 # Cf. avpres.net/FFmpeg/delta # 12. Écran divisé («split screen») ffmpeg \ -i Dufay_H264_1.mp4 \ -i Dufay_H264_2.mp4 \ -filter_complex \ "[0]crop=iw/2:ih:0:0, \ pad=iw*2:ih*1[left]; \ [1]crop=iw/2:ih:iw/2:0[right]; \ [left][right]overlay=w" \ Dufay_H264_split.mp4 # Cf. avpres.net/FFmpeg/split ExercicesCompétences élémentaires
Compétences générales
Compétences étendues
2019-07-14 |