« Vidéo numérique » : différence entre les versions
(→FFMPEG) |
|||
(2 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 180 : | Ligne 180 : | ||
| -acodec / -vcodec || choix du codec audio / vidéo<br /> | | -acodec / -vcodec || choix du codec audio / vidéo<br /> | ||
<syntaxhighlight lang=bash inline>ffmpeg -codecs</syntaxhighlight> pour avoir la liste des codecs disponibles (<tt>libmp3lame</tt>)<br /> | <syntaxhighlight lang=bash inline>ffmpeg -codecs</syntaxhighlight> pour avoir la liste des codecs disponibles (<tt>libmp3lame</tt>)<br /> | ||
<syntaxhighlight lang=bash inline>ffmpeg -codec: | <syntaxhighlight lang=bash inline>ffmpeg -codec:a copy</syntaxhighlight> copie du flux audio | ||
|- | |- | ||
| -s WxH || format de l'image ({{boxx|-s 800x600}}) | | -s WxH || format de l'image ({{boxx|-s 800x600}}) | ||
Ligne 271 : | Ligne 271 : | ||
== [http://ffmpeg.org/ffmpeg-filters.html#transpose Rotation d'une vidéo] == | == [http://ffmpeg.org/ffmpeg-filters.html#transpose Rotation d'une vidéo] == | ||
<kode lang='bash'> | <kode lang='bash'> | ||
# rotate by 90 degrees clockwise from a landscape video to a portait video | |||
ffmpeg -i input.mp4 -vf "transpose=dir=clock:passthrough=portrait" -c:a copy output.mp4 | ffmpeg -i input.mp4 -vf "transpose=dir=clock:passthrough=portrait" -c:a copy output.mp4 | ||
# dir=clock - rotate by 90 degrees clockwise | # dir=clock - rotate by 90 degrees clockwise | ||
# passthrough=portrait - preserve portrait geometry | # passthrough=portrait - preserve portrait geometry | ||
# -c:a copy - copy audio without trancode it | # -c:a copy - copy audio without trancode it | ||
</kode> | </kode> |
Dernière version du 31 octobre 2021 à 10:35
Logiciels
Conteneurs vidéo
Un conteneur permet de stocker un flux vidéo, un ou plusieurs flux audio, des fichiers de sous-titres.
Conteneur | Extensions | Description |
---|---|---|
AVI | avi | Audio Video Interleave développé par Microsoft. |
MPEG 1/2/4 | mpg mpeg mp4 | Moving Picture Experts Group. |
Matroska | mkv mka mks | |
QuickTime | mov | développé par Apple. |
Ogg | ogg ogv oga ogx ogm | Moving Picture Experts Group. |
Transport Stream | ts | |
Flash Video | flv | Développé par Adobe Systems. |
WebM | webm weba | basé sur Matroska, développé par Google. |
Format de l'image
Format | Ratio | Définition |
---|---|---|
2,35/1 | 2,35 | 640x272 |
16/9 | 1,77 | 1920x1080 1280x720 512x288 480x270 |
16/10 | 1,6 | 1680x1050 1440x900 |
4/3 | 1,33 | 1440x1080 1024x768 800x600 640x480 320x240 |
1,25/1 | 1,25 | 720x576 |
Type de balayage
- Entrelacement
- Progressif
- MBAFF (Macroblock-adaptive frame-field)
Débits vidéo
Qualité | Débit |
---|---|
Faible | 128 kb/s |
Web | 384 kb/s |
Video CD | 1.25 Mb/s |
DVD | 5 Mb/s |
HDTV | 15 Mb/s |
Blu-ray | 40 Mb/s |
1 kb = 1000 bits = 1000/8 octets débit vidéo (kb/s) = taille (Mio) / durée (s) * 1024*1024*8/1000 |
Normes de codage vidéo
Norme | Codec : outils pour encoder/décoder | Commentaire |
---|---|---|
H.265 / MPEG-H Part 2 / HEVC | libx265 | implémentation libre du High Efficiency Video Coding |
H.264 MPEG-4 Part 10 AVC |
x264 | Advanced Video Coding Pour les vidéos HD |
MPEG-4 Part 2 ASP | Xvid, mpeg4 | |
Theora | libtheora | |
DV | Vidéo pour montage sur ordinateur | |
MPEG-2 | mpeg2video, mpeg2enc | Vidéo pour DVD |
MPEG-1 | mpeg1video, mpeg2enc | |
M-JPEG | ||
H.263 | prédécesseur du H.264 | |
Sorenson Spark | implémentation incomplète de H.263 | |
VP8 |
Combinaisons communes conteneur - codecs
Conteneur | Codec vidéo | Codec audio |
---|---|---|
AVI | XviD | MP3 |
MP4 | AVC / H.264 / H.265 | AAC |
OGG | Theora | Vorbis |
Matroska | Theora | Vorbis |
WebM | VP8 | Vorbis |
Débits
En général le débit audio est de 128 Kbps.
Le débit vidéo est calculé en fonction de la taille souhaitée pour le fichier vidéo.
Obtenir des informations sur la vidéo
mediainfo MaVideo.avi ffmpeg -i MaVideo.avi mplayer MaVideo.avi |
Extraire les pistes d'un MKV
# Lister les pistes mkvmerge -i MaVideo.mkv # Fichier 'MaVideo.mkv' : conteneur : Matroska # Piste numéro 0 : video (V_MPEG4/ISO/AVC) # Piste numéro 1 : audio (A_AAC/MPEG2/LC) # Piste numéro 2 : audio (A_AAC/MPEG2/LC) # Piste numéro 3 : subtitles (S_TEXT/SSA) # Piste numéro 4 : subtitles (S_VOBSUB) # Pièce jointe numéro 1 : type 'image/jpeg', taille 272076 octets, nom de fichier 'Cover.jpg' # Pièce jointe numéro 2 : type 'application/x-truetype-font', taille 12432 octets, nom de fichier 'xct1.ttf' # Chapitres : 20 entrées # Extraire la vidéo mkvextract tracks MaVideo.mkv O:video.mpg # Extraire la piste audio 2 mkvextract tracks MaVideo.mkv 2:audio2.mp3 # Extraire les sous-titres mkvextract tracks MaVideo.mkv 4:sous-titres.srt # comme les sous-titres sont au format VobSub, la sortie sera composée de 2 fichiers : # sous-titres.idx et sous-titres.sub |
mkvmerge et mkvextract font partie de la suite MKVToolNix.
DVD to MKV
Créer un fichier MKV
Utiliser MKVMergeGUI de la suite MKVToolNix pour assembler les fichiers vidéo, audio et sous-titres afin de créer un fichier MKV.
- Convertir les sous-titres en UTF8
- Nommer les pistes audio et les sous-titres
Modifier les tags d'un MKV
# Changer le tag Title mkvpropedit video.mkv --set "title=Nouveau Titre" |
FFMPEG
Option | Description |
---|---|
-an / -vn | sans audio / vidéo |
-acodec / -vcodec | choix du codec audio / vidéo
|
-s WxH | format de l'image (-s 800x600) |
-aspect | définit le ratio: 4:3, 16:9 (-aspect 16:9) |
-ab / -b | débit de l'audio / vidéo en bit/s (-ab 64 -b 200k) |
-f | force le format du conteneur -f avi
|
-ss XX | commence à XX secondes (-ss 5, -ss 00:00:05.00) |
-t XX | pendant XX secondes (-t 10, -t 00:00:10.00) |
threads X | utilise X processus |
Exemples
# Convertion WMV -> AVI / Xvid ffmpeg -i Video.wmv -codec:v libxvid -f avi NewVideo.avi |
Extraire le flux vidéo
# Extraction par copie du flux vidéo ffmpeg -i MaVideo.avi -an -vcodec copy FluxVideo.avi # -vcodec copy : copie du flux vidéo # -an : Désactive l'enregistrement de l'audio. On ne s'occupe que de la vidéo ici. # autre méthode ffmpeg -i MaVideo.avi -map 0:0 -vcodec copy FluxVideo.avi |
Ajouter / extraire le flux audio
# ajout d'un flux audio à une vidéo qui n'en avait pas ffmpeg -i MaVideo.avi -i MonAudio.mp3 FluxVideo.avi # sans réencoder ffmpeg -i MaVideo.avi -i MonAudio.mp3 -c:v copy -c:a copy Merge.avi # ajout d'un second flux audio à une vidéo qui en avait un ffmpeg -i MaVideo.avi -i MonAudioFr.mp3 \ -map 0:0 -map 0:1 -map 1:0 \ -c:v copy -c:a copy -c:a copy \ FluxVideo.avi # extraction de la piste audio ffmpeg -i MaVideo.avi FluxAudio.mp3 # pour eviter le réencodage choisir la même extension que la source ffmpeg -i MaVideo.avi 2>&1 | grep Audio # Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s (default) ffmpeg -i MaVideo.avi -acodec copy FluxAudio.aac |
ffplay
# permet de connaitre le debut et la fin de la vidéo en seconde pour le découpage ffplay -i Video.avi -stats -vf scale=iw/2:ih/2 |
Concaténation
# il faut convertir les vidéo au format mpg ou mpeg transport streams (ts) ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate1.ts ffmpeg -i input2.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate2.ts # on concatène les fichiers cat intermediate1.ts intermediate2.ts | ffmpeg -i - -c copy -bsf:a aac_adtstoasc output.mp4 |
How can I concatenate video files
Extraire des images d'une vidéo
# extrait 5 images par seconde de 0 à 1 seconde ffmpeg -i MaVidéo.ogg -r 5 -ss 0 -t 1 -f image2 -vcodec mjpeg img-%03d.jpg # -r limite à 5 images par secondes, sinon 25 # -f Force format? # img-%03d.jpg, 3 digits |
Réduire la taille d'une vidéo
# réencoder la vidéo et l'audio avec des codecs performants ffmpeg -i input.mp4 -c:v libx265 -crf 30 -c:a aac -b:a 128k output.mp4 |
Rotation d'une vidéo
# rotate by 90 degrees clockwise from a landscape video to a portait video ffmpeg -i input.mp4 -vf "transpose=dir=clock:passthrough=portrait" -c:a copy output.mp4 # dir=clock - rotate by 90 degrees clockwise # passthrough=portrait - preserve portrait geometry # -c:a copy - copy audio without trancode it |
Transposition direction | Description |
---|---|
cclock_flip | rotate by 90 degrees counterclockwise and vertically flip |
clock | rotate by 90 degrees clockwise |
cclock | rotate by 90 degrees counterclockwise |
clock_flip | rotate by 90 degrees clockwise and vertically flip |
Passthrough | Description |
---|---|
none | always apply transposition |
portrait | preserve portrait geometry (when height >= width) |
landscape | preserve landscape geometry (when width >= height) |
Sous-titres
Obtenir des sous-titres
Pour décaler dans le temps les sous-titres, utilisez Gnome Subtitles.
Extraire les sous-titres
ffmpeg -i Video.mp4 -map 0:2 -c:s srt Video.srt # Extraction par copie des sous-titres ffmpeg -i Video.avi -an -vn -c:s copy -f rawvideo sub.txt |
Ajouter des sous-titres
ffmpeg -i Video.mp4 \ -i sub.srt -metadata:s:s:0 language=eng \ -map 0:0 -map 0:1 -map 1:0 \ -c:v copy -c:a copy -c:s mov_text \ VideoAvecST.mp4 |
Conversion de sous-titres VobSub en SRT
Les sous-titres VobSub se présentent sous la forme de 2 fichiers : idx et sub.
# Extraire les images des sous-titres subp2tiff --sid=0 -n NomFichierSansExtension # --sid : ID du sous-titre # NomFichierSansExtension : est le nom du fichier de sous-titres, sans les extensions .idx et .sub. # Un fichier XML est également généré, qui contient l'indexation des sous-titres au format XML. # Générer les fichiers .txt contenant le texte du sous-titre pour chaque fichier .tif. for img in *.tif ; do tesseract "$img" "$img" -l fra ; done # Générer le fichier de sous-titres SRT subptools -s -w -t srt -i index.xml -o MesSousTitres.srt # index.xml : fichier XML généré lors de l'éxécution de la commande subp2tiff # Ouvrir le fichier SRT avec LibreOffice Writer afin de corriger les erreurs. libreoffice --writer MesSousTitres.srt |
Le paquet OGMRip fournit les applications subp2tiff et subptools.
Les paquets tesseract, tesseract-data-fra, tesseract-data-eng, tesseract-data-spa sont nécessaire pour l'utilisation de Tesseract pour la reconnaissance de caractères.
Une autre solution est d'utiliser Avidemux : Outils → OCR (VobSub → srt).