Outils pour utilisateurs

Outils du site


prog:ffmpeg

Ceci est une ancienne révision du document !


Sous-titre

srt -> ass

ffmpeg -i sous-titre.srt sous-titre.ass

Sous-titre non détecté

Il faut augmenter probesize et analyzeduration.

ffmpeg -analyzeduration 100000k -probesize 100000k -i input.ts

Why does FFmpeg not see the subtitles in my VOB file?, Archive

Ajout d'un sous-titre à une vidéo

Format de sortie mkv. mp4 - Use ffmpeg to add text subtitles - Stack Overflow, Archive

ffmpeg -i entree.mp4 -i sous-titre.fr.ass -i sous-titre.us.ass -c copy -map 0 -map 1 -map 2 -metadata:s:s:0 language=fra -metadata:s:s:1 language=eng sortie.mkv

Le -map 0 indique tous les flux de la vidéo d'origine. Il est important de mettre un map pour chaque fichier d'entrée. Il est possible de mettre X:Y avec le premier chiffre indique le fichier et le deuxième le flux correspondant. Pour avoir la liste complète, une lecture des entêtes avec avplay permet de tous les avoir.

-metadata:s:s:0 : s pour stream et s pour subtitle et 0 pour le premier sous-titre. Si la vidéo d'origine possède déjà un sous-titre et qu'on souhaite définir la langue uniquement pour le deuxième sous-titre, il faut juste mettre -metadata:s:s:1 …. FFMPEG An Intermediate Guide_subtitle options - Wikibooks, open books for an open world, Archive

Vérification que ffmpeg a bien compris la langue (entre parenthèse) :

  Stream #0:2(fra): Subtitle: ssa
  Stream #0:3(eng): Subtitle: ssa
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
  Stream #1:0 -> #0:2 (copy)
  Stream #2:0 -> #0:3 (copy)

ffmpeg choisit de modifier le map

Et que vlc aussi :

Liste des langues reconnues : language-codes-full.csv, Archive. Base du constat : avlanguage.c, Archive

Fichier source mkv

Après des tests avec VLC, il n'arrive pas à lire les sous-titres du mkv d'origine. Il faut donc les extraire avant de faire la fusion.

mkvextract tracks input.mkv 2:en.srt
ffmpeg -i input.mkv -i fr.srt -i en.srt -map 0:0 -map 0:1 -map 1 -map 2 -c copy -metadata:s:s:0 language=fre -metadata:s:s:1 language=eng output.mkv

On détaille le map du fichier source pour ne pas prendre le sous-titre d'origine.

Encodage

ffmpeg -i input.mp4 -threads 8 -acodec libfdk_aac -ar 44100 -ab 48000 -profile:a aac_he_v2 -ac 2 -vcodec libx264 -f mp4 -r 30 -aspect 1920:1080 -vf scale=1920:1080 -preset veryslow -crf 22 -pix_fmt yuv420p output.mp4

Choix des paramètres :

Concaténer

Pour les DVD, les pistes sont dans des fichiers découpés avec une taille de 1 Go (1073739776 o). Un cat suffit pour les concaténer.

cat VTS_01_{1,2,3,4,5,6}.VOB > output.VOB

Pour les fichiers avec l'extension ts, ffmpeg possède une fonction dédiée :

ffmpeg -i "concat:input1.ts|input2.ts|input3.ts" -c copy output.ts

m3u8

C'est une liste de fichier .ts.

ffmpeg.exe -i http://example.com/link.m3u8 -c copy output.mp4
prog/ffmpeg.1573485876.txt.gz · Dernière modification : 2019/11/11 16:24 de root