2015-10-24 4 views
1

J'écris une application Java qui utilise à un moment donné une commande ffMPEG dans la console. Cette commande doit effectuer les opérations suivantes:Création d'une commande FFMPEG pour définir toutes les vidéos au même format et ajouter un filigrane?

  • Prenez le fichier d'entrée de DDTV/episodes-unconverted/example.[mpg/avi]
  • Faites 1280x780. (Si c'est 4: 3, ajouter des boîtes de piliers, si c'est 16: 9 ... juste vous savez ne rien faire je suppose)
  • Ajouter le filigrane DDTV/DDTVwatermark.png à 10px par le bas, et 10px à partir de la droite, à 33% de transparence à la vidéo.
  • Sortie à DDTV/episodes-converted/example.mpg

Merci beaucoup!

Répondre

3

Cela fonctionnerait:

ffmpeg -i "DDTV/DDTVwatermark.png" -i "DDTV/episodes-unconverted/example.mpg" \ 
-filter_complex "[0:v]colorchannelmixer=0.33[ov];[1:v]scale=iw*sar*min(1280/(iw*sar)\,780/ih):ih*min(1280/(iw*sar)\,780/ih),pad=1280:780:(ow-iw)/2:(oh-ih)/2:black[mainv];[ov][mainv]overlay=main-w-10:main_h-10[video_out] \ 
-map [video_out] -map 1:a DDTV/episodes-converted/example.mpg 

Si vous souhaitez addd plus option de sortie (comme codec) mis ici en commande suivante:

-filter_complex "~" -map [video_out] -map 1:a -c:v mpeg2video -c:a mp3 DDTV/episodes-converted/example.mpg 

En fait, vous pouvez le mettre partout dans la commande ligne mais c'est juste chose conventionnelle. et n'utilisez pas de copie dans ce cas. vous ne pouvez pas copier le codec d'entrée parce que vous utilisez un filtre. L'option de copie ne fonctionne que si aucun filtre n'est utilisé. Laissez-moi savoir si vous avez d'autres questions.