Skip to content

Video aus Bild und Audiodatei erstellen

22. Januar 2008

Bei YouTube und Sevenload sind ab und an Videos zu sehen, die nur ein Bild und Audiodaten enthalten Keine große Sache, wenn man weiß, wie es geht. Beim Suchen nach einer einfachen Möglichkeit bin ich in den internationalen Ubuntu-Foren auf ein Python-Script gestoßen, das genau diese Aufgabe erledigt: man benötigt ein Bild, eine MP3-Datei, die Sekundenanzahl und aus diesen Komponenten formt das Python-Script eine Avi-Datei, die man dann leicht hochladen kann. Hierzu wird jedoch das Programm „mencoder“ benötigt.

Da ich nicht weiß, wie lange das Script online sein wird, habe ich es hier noch einmal veröffentlicht:

#!/usr/bin/env python

# makevid.py - Make videos from a single image plus a sound file
# Copyright (C) 2007 Sam Peterson

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

"""
makevid.py by Sam Peterson

Latest version of script should be available at:
http://peabody.weeman.org/makevid.py

Requirements: mencoder

This script creates an avi divx video for uploading to YouTube given
only an mp3 and an image file.  I use it to create video reponses to
people on YouTube.  I have a microphone, but I currently don't have a
working video device.  Plus, if I did, I wouldn't use it anyway, as I
don't like to place my face in public Internet forums.  The script
requires a working mencoder in your PATH.

This script takes three command line arguments: a path to an image
file, a path to an audio file, and a number of seconds.  If everything
goes smoothly, a video file named output.avi will be written to the
current directory.  The file should play roughly as long as the number
of seconds specified.

Example:

makevid.py lebowski.jpg audio.mp3 20

Please email any bugs to peabodyenator@gmail.com.  The videos seems to
work well once uploaded, but seeking seems a little strange.  I'm open
to all suggestions.

Advice:
* You should pre-scale your image file to 320x240, which is the YouTube
video resolution.

* To my knowledge, the audiofile doesn't have to be an mp3, but that's
the recommended format on YouTube's website.

TODO: I think it should be possible to determine how long the video
needs to be from the audio file, but I'm not sure of the best way to
do this.  If it could be done it would eliminate the requirement of
manually passing the number of seconds to the script.
"""

import os, sys

fps = 30

if len(sys.argv) != 4:
print "Usage: makevid.py audiofile imagefile seconds"
sys.exit(1)

secs = int(sys.argv[3])
if secs

Anleitung für das Skript unter Ubuntu:

  1. In die Konsole wechseln und mit sudo apt-get install mencoder „mencoder“ installieren.
  2. Skript kopieren, in eine Textdatei einfügen und unter „makevid.py“ speichern.
  3. In das Verzeichnis, in dem das Skript liegt, mit cd wechseln.
  4. Diese Textdatei mit chmod +x ausführbar machen.
  5. Ein Video mit ./makevid.py Bild.jpg Audio.mp3 Sekunden erstellen.

Das Ergebnis sollte eine Datei namens „output.avi“ sein.

6 Kommentare leave one →
  1. 15. Juli 2009 12:54

    SUPER Script, danke!
    Somit konnte ich auf einfachste Weise ein YouTube-Video erstellen.

    Allerdings würde ich bei der Anleitung noch eine kleine Richtigstellung vornehmen, die für Linux-Erfahrene sicher selbstverständlich ist, aber bei Linux-Neulingen (ehemals Windows-Veteranen) auf frustrierende Fehlschläge der Kommandoausführung stoßen könnte.

    Punkt 5, also der Terminalbefehl zur eigentlichen Videoerstellung, würde ich um die vorangestellten Zeichen „./“ ergänzen.
    Diese Zeichen dienen generell dem Ausführen eines Scriptes.

    Somit lautet der Befehl:
    ./makevid.py Bild.jpg Audio.mp3 Sekunden

    Nochmals vielen Dank für die gelungene Anleitung zur Erzeugung eines AVI-Filmes unter Einbindung eines Standbildes.

    Mit freundlichem Federschwung
    Ralph

  2. 15. September 2009 14:00

    Bekomme leider eine Fehlermeldung:

    oxking@OxBook:~/Desktop$ ./makevid.py gilgalad.jpg gilgalad.mp3 60
    File „./makevid.py“, line 67
    print „Usage: makevid.py audiofile imagefile seconds“
    ^
    IndentationError: expected an indented block

    Benutze ein aktuelles Ubuntu 9.04

  3. 15. September 2009 14:08

    Hab jetzt einfach einen anderen Tip befolgt und ffmpeg benutzt:

    ffmpeg -i DeinBild.jpg -i DeinSong.mp3 DasVideo.avi

    Funktionierte tadellos.

    • 15. September 2009 15:12

      Ok, zu früh gefreut. Nur Totem spielt es so ab.
      Weder Youtube moch AVIdemux oder Kino nehemn es an.
      Für sie hat das Video wohl nur ein Frame….

      ffmpeg -t hh:mm:ss -loop_input -i Bild.jpg -t hh:mm:ss -i Ton.mp3 Video.avi

      So klappt es dann.

  4. 14. Oktober 2012 12:04

    gibt es programme dafür mit graphischer benutzeroberfläche, wenn man sich nicht gut auskennt mit scripts auskennt?
    ich entschuldige mein unwissen

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: