4 votes

Filigrane FFmpeg

ffmpeg –i test.mkv -vf "movie=watermark.png [watermark]; [in][watermark] overlay=10:10 [out]" outputvideo.mkv

J'essaie simplement d'ajouter un filigrane à une vidéo pour commencer à la tester avec ffmpeg. Mais cela ne fonctionne pas alors que je ne vois pas d'erreur.

J'ai également essayé

ffmpeg -i test.mkv -i watermark.png -filter_complex 'overlay=10:main_h-overlay_h-10' output.mkv

Mais là non plus, pas de succès.

Sortie :

ffmpeg version 1.1.1 Copyright (c) 2000-2013 the FFmpeg developers
  built on Jan 20 2013 23:05:28 with gcc 4.7.2 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      52. 13.100 / 52. 13.100
  libavcodec     54. 86.100 / 54. 86.100
  libavformat    54. 59.106 / 54. 59.106
  libavdevice    54.  3.102 / 54.  3.102
  libavfilter     3. 32.100 /  3. 32.100
  libswscale      2.  1.103 /  2.  1.103
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100
Input #0, matroska,webm, from 'test.mkv':
  Metadata:
    creation_time   : 2012-11-01 02:35:10
  Duration: 00:00:59.74, start: 0.000000, bitrate: 5821 kb/s
    Stream #0:0(eng): Video: h264 (High), yuv420p, 1280x720, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc
    Stream #0:1: Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s (default)
Input #1, image2, from 'watermark.png':
  Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
    Stream #1:0: Video: png, rgba, 1600x200, 25 tbr, 25 tbn, 25 tbc
[Parsed_overlay_0 @ 00328000] Overlay area (10,510)<->(1610,710) not within the main area (0,0)<->(1280,720) or zero-sized
[auto-inserted scaler 0 @ 03da0f60] Failed to configure input pad on Parsed_overlay_0

3voto

evilsoup Points 12077

Il semble que votre filigrane soit plus grand que la vidéo principale. Puisque vous utilisez déjà des filtres, la façon la plus propre de corriger cela est d'utiliser la fonction scale filtre . scale=25:20 le mettra à l'échelle d'un carré de 25x20 pixels. Si vous utilisez scale=25:-1 il mettrait à l'échelle la vidéo (filigrane dans ce cas) à une largeur de 25, et mettrait à l'échelle la hauteur de manière à ce que le rapport d'aspect reste le même (vous pouvez également utiliser scale=-1:20 ).

Voici un exemple d'utilisation :

ffmpeg -i test.mkv -i watermark.png -filter_complex \
"[1:v]scale=25:20[wat];[0:v][wat]overlay=10:main_h-overlay_h-10[outv]" \
-map "[outv]" -map 0:a output.mkv

Dans le cas d'un filtre graphique complexe, j'étiquette toujours mes entrées et mes sorties afin d'améliorer la lisibilité. Si vous n'avez pas d'audio, ou si vous ne voulez pas prendre d'audio dans test.mkv, coupez la partie -map 0:a .

Dans le graphique de filtrage, [1:v] fait référence à "la vidéo de l'entrée 1" (watermark.png dans ce cas, puisque ffmpeg commence à compter à partir de 0). Vous pouvez également utiliser [1:0] pour "le zeroth stream de l'entrée 1", ou simplement [1] puisque dans ce cas il y a seulement un flux dans l'entrée. Voir l'article documentation sur les spécificateurs de flux pour plus d'informations.

Le [wat] à la fin du filtre d'échelle permet simplement au reste du filtre graphique de se référer à la sortie du filtre d'échelle -- un peu comme si l'on définissait une variable dans un script. Les [outv] à la toute fin du filtre graphique a une fonction similaire, mais ici je l'utilise également en dehors du filtre graphique ( tous définies à l'intérieur d'un graphe de filtrage sont également accessibles à l'extérieur du graphe de filtrage, avec l'attribut -map ).

Pour obtenir une vidéo de qualité décente, vous devez définir plusieurs autres options. cet abécédaire général de l'encodage ou l'un des guides plus détaillés disponibles sur le site Web de la FFmpeg wiki .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X