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
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
|
|
# 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
Tuto pour OGMRip
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
ffmpeg -codecs pour avoir la liste des codecs disponibles (libmp3lame)
ffmpeg -codec:a copy copie du flux audio
|
-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
ffmpeg -formats pour avoir la liste des formats disponibles (avi matroska mpeg)
|
-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
|
|
# 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
|
|
# 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
|
|
# 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
|
# 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
|
H.265
|
# 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.
|
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.
Doc Ubuntu
Une autre solution est d'utiliser Avidemux : Outils → OCR (VobSub → srt).