informatique:multimedia:ffmpeg

FFmpeg

nice -19 ffmpeg  -f alsa -thread_queue_size 1024 -i hw:1,0 -f v4l2 -thread_queue_size 1024 -channel 0 -i /dev/video1 \
-standard PAL -vcodec libx264 -filter:v "yadif=0:-1:0" -strict -2 -flags +ildct+ilme -r 25 -crf 23 -preset medium -acodec aac \
-movflags +faststart -b:v 1M -minrate 1800k -maxrate 1800K -bufsize 2M -t 00:02:00 VHS.mp4
  • Les paramètres -filter:v "yadif=0:-1:0" -strict -2 permet de définir un filtre de désentrelacement YADIF
  • Les paramètres -b:v 1M -minrate 1800k -maxrate 1800K -bufsize 2M permet de limiter le bitrate à 1800kbits/s
  • Le paramètre -t 00:02:00 permet de définir la durée de capture (2 minutes dans cet exemple).
En utilisant l'adaptateur PAL⇔ NTSC, il faut ajouter un crop. Pour cela, ajouter un filter dans le paramètre -filter:v en le séparant avec une virgule : crop=654:446:38:30 (avec : w:h:top_x:top_y )
ffmpeg -i in.mp4 -ss 00:00:15 -t 00:01:27 out.mp4
  • Le paramètre -ss 00:00:15 permet de découper à partir de 15 secondes
  • Le paramètre -t 00:01:27 permet de découper pour une durée de 1m27s
ffmpeg -i in.mp4 -ss 00:01:14.435 -vframes 1 out.png
  • Le paramètre -ss 00:00:15 permet de choisir quelle image extraire
ffmpeg -i in.mp4 -c copy -an out.mp4
  • Le paramètre -an permet de désactiver l'audio de la vidéo
function webm2gif() {
        TMP=$(mktemp --suffix .png)
        ffmpeg -y -i "$1" -vf palettegen $TMP
        ffmpeg -y -i "$1" -i $TMP -filter_complex paletteuse -r 10  "${1%.webm}.gif"
        rm $TMP
}

Source : https://askubuntu.com/a/1350795

  • Lister les formats disponibles (avec yt-dlp) :
    $ yt-dlp -F 'https://www.youtube.com/watch?v=gSDtNkKPiDg'
    [youtube] Extracting URL: https://www.youtube.com/watch?app=desktop&v=gSDtNkKPiDg
    [youtube] gSDtNkKPiDg: Downloading webpage
    [youtube] gSDtNkKPiDg: Downloading android player API JSON
    [info] Available formats for gSDtNkKPiDg:
    ID  EXT   RESOLUTION FPS CH │   FILESIZE   TBR PROTO │ VCODEC          VBR ACODEC      ABR ASR MORE INFO
    ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────
    sb2 mhtml 48x27        0    │                  mhtml │ images                                  storyboard
    sb1 mhtml 80x45        0    │                  mhtml │ images                                  storyboard
    sb0 mhtml 160x90       0    │                  mhtml │ images                                  storyboard
    599 m4a   audio only      2 │    2.25MiB   31k dash  │ audio only          mp4a.40.5   31k 22k ultralow, m4a_dash
    600 webm  audio only      2 │    2.46MiB   34k dash  │ audio only          opus        34k 48k ultralow, webm_dash
    139 m4a   audio only      2 │    3.56MiB   49k dash  │ audio only          mp4a.40.5   49k 22k low, m4a_dash
    249 webm  audio only      2 │    3.63MiB   50k dash  │ audio only          opus        50k 48k low, webm_dash
    250 webm  audio only      2 │    4.68MiB   64k dash  │ audio only          opus        64k 48k low, webm_dash
    140 m4a   audio only      2 │    9.45MiB  129k dash  │ audio only          mp4a.40.2  129k 44k medium, m4a_dash
    251 webm  audio only      2 │    9.26MiB  127k dash  │ audio only          opus       127k 48k medium, webm_dash
    17  3gp   176x144      6  1 │    5.75MiB   79k https │ mp4v.20.3       79k mp4a.40.2    0k 22k 144p
    597 mp4   256x144     13    │    2.39MiB   33k dash  │ avc1.4d400b     33k video only          144p, mp4_dash
    598 webm  256x144     13    │    1.92MiB   26k dash  │ vp9             26k video only          144p, webm_dash
    394 mp4   256x144     25    │    4.80MiB   66k dash  │ av01.0.00M.08   66k video only          144p, mp4_dash
    160 mp4   256x144     25    │    5.56MiB   76k dash  │ avc1.4d400c     76k video only          144p, mp4_dash
    278 webm  256x144     25    │    6.59MiB   90k dash  │ vp9             90k video only          144p, webm_dash
    395 mp4   426x240     25    │   10.36MiB  142k dash  │ av01.0.00M.08  142k video only          240p, mp4_dash
    133 mp4   426x240     25    │    9.82MiB  134k dash  │ avc1.4d4015    134k video only          240p, mp4_dash
    242 webm  426x240     25    │   13.31MiB  182k dash  │ vp9            182k video only          240p, webm_dash
    396 mp4   640x360     25    │   20.70MiB  284k dash  │ av01.0.01M.08  284k video only          360p, mp4_dash
    134 mp4   640x360     25    │   19.56MiB  268k dash  │ avc1.4d401e    268k video only          360p, mp4_dash
    18  mp4   640x360     25  2 │   48.86MiB  669k https │ avc1.42001E    669k mp4a.40.2    0k 44k 360p
    243 webm  640x360     25    │   24.43MiB  335k dash  │ vp9            335k video only          360p, webm_dash
    397 mp4   854x480     25    │   37.08MiB  508k dash  │ av01.0.04M.08  508k video only          480p, mp4_dash
    135 mp4   854x480     25    │   31.03MiB  425k dash  │ avc1.4d401e    425k video only          480p, mp4_dash
    244 webm  854x480     25    │   38.86MiB  532k dash  │ vp9            532k video only          480p, webm_dash
    22  mp4   1280x720    25  2 │ ~ 72.10MiB  965k https │ avc1.64001F    965k mp4a.40.2    0k 44k 720p
    398 mp4   1280x720    25    │   67.00MiB  918k dash  │ av01.0.05M.08  918k video only          720p, mp4_dash
    136 mp4   1280x720    25    │   61.02MiB  836k dash  │ avc1.4d401f    836k video only          720p, mp4_dash
    247 webm  1280x720    25    │   76.04MiB 1042k dash  │ vp9           1042k video only          720p, webm_dash
    399 mp4   1920x1080   25    │  134.37MiB 1841k dash  │ av01.0.08M.08 1841k video only          1080p, mp4_dash
    137 mp4   1920x1080   25    │  239.68MiB 3284k dash  │ avc1.640028   3284k video only          1080p, mp4_dash
    248 webm  1920x1080   25    │  163.11MiB 2235k dash  │ vp9           2235k video only          1080p, webm_dash
  • Télécharger celui que vous voulez (attention au format video only, avec yt-dlp) :
    yt-dlp --write-sub --write-auto-sub --sub-lang "en.*" 'https://www.youtube.com/watch?v=gSDtNkKPiDg'
  • Lancer l'incrustation des sous-titres (avec ffmpeg) :
    ffmpeg -i 'The WEIGHTLESS Machine [gSDtNkKPiDg].mp4' -vf subtitles="The\ WEIGHTLESS\ Machine\ \[gSDtNkKPiDg\].en-orig.vtt" The\ WEIGHTLESS\ Machine.mp4
Pour traduire les sous-titres, l'outil en ligne Online Subtitle Translator fait très bien le job.
  • informatique/multimedia/ffmpeg.txt
  • Dernière modification : 2023/07/10 15:19
  • de bn8