ubuntuusers.de

Recffmpeg FFMPEG Screenrecording GUI

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

leszek

Avatar von leszek

Anmeldungsdatum:
10. Oktober 2006

Beiträge: 436

Wohnort: Köln

Hi, ich hab mich mal rangesetzt eine kleine GUI zu schreiben für das Aufnehmen des Desktops mit Hilfe von ffmpeg. Da ich immer wieder darauf angesprochen wurde, dass gtk-recordMyDesktop nicht wie gewünscht funktioniert, hatte ich zwar mit der ffmpeg Kommandozeile immer eine super Alternative die ich dann vorschlagen konnte, aber es gab tatsächlich Leute die Konsole oder Terminal hörten und sich dachten "ok ist nix für mich". Darum dachte ich mir ok bauen wir mal ne simples Tray tool, dass diesen ffmpeg Befehl quasi grafisch mit ein zwei klicks zugreifbar macht. Version 0.1 also die erste Version ist noch etwas eingeschränkt, neben dem Soundgerät von dem man aufnehmen möchte kann man so gut wie nix einstellen (naja stimmt nicht ganz wenn man sich mal den code anschaut, aber es gibt zumindest noch keinen grafischen Konfigurator)

Falls Interesse an eine Mitarbeit für das Projekt besteht würde ich mich sehr freuen. Außerdem sind natürlich auch Ideen und Vorschläge immer willkommen. Geplant sind unter anderem eine Einstellungsmöglichkeit für die Ausgangsdatei und die Möglichkeit unter Umständen die Audio und Videocodecs zu ändern. Hier muss evaluiert werden, welche Codecs ffmpeg von hause aus bereits unterstützt (also auch in der eingeschränkten variante die Ubuntu im Normalfall anbietet)

Das Programm ist in PyQT4 geschrieben, ihr braucht also die Pakete python-qt4 und ffmpeg (eine ffmpeg version die libx264 als codec unterstützt). Version 0.1 ist angehangen. Außerdem gibts noch eine kleine Demo : http://blip.tv/file/4613281

edit: Youtube hat scheinbar beim Konvertieren mist gebaut, das Video ist vollkommen "out of sync", deshalb habe ich es mal auf blip.tv hochgeladen und den Link oben ausgetauscht.

recffmpeg-tray.py (5.0 KiB)
Download recffmpeg-tray.py

leszek

(Themenstarter)
Avatar von leszek

Anmeldungsdatum:
10. Oktober 2006

Beiträge: 436

Wohnort: Köln

Update: Version 0.2 ist fertig.

Changelog

 * Neben Sounddevice kann nun unter Options auch der Videocodec, Audiocodec, Videobitrate, Aspectratio und die Ausgangsdatei gesetzt werden
 * Record Window nimmt nun ein Fenster auf sobald es angeklickt wurde
 * Konfigurationsoptionen wurden erweitert
 * Code wurde aufgeräumt und besser in Funktionen aufgegliedert
 * Warnungen erscheinen nun nicht mehr (wenn man es aus dem Terminal heraus startet)

Videodemo: http://www.youtube.com/watch?v=SyUNfgqDt1Y

Benötigt zum laufen unter Ubuntu&Debian&OpenSUSE:

ffmpeg
python-qt4

Benötigt zum laufen unter Fedora&CentOS:

ffmpeg
PyQt4

Plan

 * neuer Optionsdialog anstatt Optionsmenü (intuitive Gestaltung)
 * Popup welches Timer mit Aufnahmezeit anzeigt
 * Rahmen um Aufnahmebereich, falls "Record Window" ausgewählt wird
 * bessere Icons
 * Code cleanup
 * Code cleanup
 * Code cleanup

Ideen

 * Plasmoid für KDE 4
 * Indicator für Ubuntu
recffmpeg-tray.py (10.6 KiB)
Download recffmpeg-tray.py

LittleKoala

Anmeldungsdatum:
28. April 2010

Beiträge: 17

Hallo leszek,

ich suche gerade eine Screenrecording Software für Ubuntu 10.04 und bin jetzt auf diese Seite hier gestoßen. Ich habe noch nicht viel Erfahrung im Umgang mit Ubuntu, daher meine Frage: Wie kann ich das Skript überhaupt starten? Eine kurze "Schritt für Schritt-Installationsanleitung" wäre mir sehr willkommen. Dein Video habe ich gesehen und ffmpeg sowie python-pt4 sind installiert.

Grüße Uwe

leszek

(Themenstarter)
Avatar von leszek

Anmeldungsdatum:
10. Oktober 2006

Beiträge: 436

Wohnort: Köln

Im Grunde genommen musst du die Datei nur herunterladen und dann in den Eigenschaften (Rechtsklick → Eigenschaften) der Datei die Berechtigung Ausführbar einschalten. Danach sollte das Programm nach einem Doppelklick (oder einfachklick je nach dem welcher Desktop und welche Einstellung) in der Tray neben der Uhr erscheinen.

Hier zum besseren Verständnis noch ein Screencast der das ganze zeigt : http://www.youtube.com/watch?v=Jubvm7tE3Tw

LittleKoala

Anmeldungsdatum:
28. April 2010

Beiträge: 17

Hallo leszek,

danke für Deine Antwort. Habe die Aktivierung des Spripts noch mit Untersützung aus dem Ubuntu Support Chat hingekriegt.

Habe jetzt allerdings festgestellt, dass sich die Einträge in meiner .config zu denen, die Du in Deinem Video vom 15.01. angibst, unterscheiden. Sind das bei mir jetzt Einstellungen, die das Programm automatisch aus den bei mir zur Verfügung stehenden Dateien generiert hat, oder hast Du das Programm seit dem 15. Jan wieder geändert? Meine ffmpeg-Dateien stammen aus den Medibuntu Paketquellen. Will nur wissen, ob ich die Einstellungen auf Deine Einträge im Video ändern soll. Hier mal meine Einstellungen:

[General] videocodec = libx264 videobitrate = 2000k sounddevice = hw:0,0 framerate = 25 filename = /home/max/screencast.mp4 audiochannel = 2 screensize = 1280x1024 outputsize = 1280x1024 aspectratio = 4:3 audiocodec = libfaac

Also, meine Frage bezieht sich primär auf den Video- und Audiocodec. Das sind bei mir andere, als in Deinem Video.

Außerdem scheint meine Screencast.mp4 eine Framerate von 1 zu haben, obwohl 25 eingestellt ist. Woran kann das liegen? Habe zunächst ohne Audio aufgezeichnet, weil ich dafür noch nicht ausgerüstet bin. Die Aufnahme rauscht auch. Ist das richtig so? Darüber hnaus wird bei mir keine Screencast erzeugt, wenn ich in den 'Record Window' Modus gehe.

Grüße Uwe

screencast.mp4 (1.1 MiB)
Download screencast.mp4

leszek

(Themenstarter)
Avatar von leszek

Anmeldungsdatum:
10. Oktober 2006

Beiträge: 436

Wohnort: Köln

LittleKoala schrieb:

Hallo leszek,

danke für Deine Antwort. Habe die Aktivierung des Spripts noch mit Untersützung aus dem Ubuntu Support Chat hingekriegt.

Habe jetzt allerdings festgestellt, dass sich die Einträge in meiner .config zu denen, die Du in Deinem Video vom 15.01. angibst, unterscheiden. Sind das bei mir jetzt Einstellungen, die das Programm automatisch aus den bei mir zur Verfügung stehenden Dateien generiert hat, oder hast Du das Programm seit dem 15. Jan wieder geändert? Meine ffmpeg-Dateien stammen aus den Medibuntu Paketquellen. Will nur wissen, ob ich die Einstellungen auf Deine Einträge im Video ändern soll. Hier mal meine Einstellungen:

> [General]
> videocodec = libx264
> videobitrate = 2000k
> sounddevice = hw:0,0
> framerate = 25
> filename = /home/max/screencast.mp4
> audiochannel = 2
> screensize = 1280x1024
> outputsize = 1280x1024
> aspectratio = 4:3
> audiocodec = libfaac

Ja das sind die Standardeinstellungen. Ich habe beim Aufnehmen noch andere Einstellungen gehabt, das ist korrekt.

Also, meine Frage bezieht sich primär auf den Video- und Audiocodec. Das sind bei mir andere, als in Deinem Video.

Ja das stimmt. Wenn du libx264 und libfaac0 installiert hast sollte das Aufnehmen aber keine Probleme machen.

Außerdem scheint meine Screencast.mp4 eine Framerate von 1 zu haben, obwohl 25 eingestellt ist. Woran kann das liegen? Habe zunächst ohne Audio aufgezeichnet, weil ich dafür noch nicht ausgerüstet bin. Die Aufnahme rauscht auch. Ist das richtig so? Darüber hnaus wird bei mir keine Screencast erzeugt, wenn ich in den 'Record Window' Modus gehe.

Um kein Rauschen zu haben musst du bei Options → Set Audio Device einfach mal nix eingeben. Dann wird nicht von der Soundkarte versucht aufzunehmen. Die Framerate sollte 25 Bilder pro Sekunde betragen. Überprüfen kannst du das indem du ffmpeg -i /pfad/zum/screencast.mp4 eingibst in ein Terminal und dir die Infos von FFmpeg zum Video anschaust. Beim 'Record Window' Modus erscheint ein Zielkreuz, dass quasi anzeigt dass du das Fenster was du aufnehmen willst anklicken sollst. Ich erwähne, dass weil ich gemerkt habe, dass es Leute gibt die versuchen ein Quadrat aufzuziehen, was leider nicht funktioniert, da hier eine einfache Xwininfo Abfrage gemacht wird um die Fensterposition herauszukriegen. Falls es damit Partout nicht klappen will kannst du das Programm mal aus einem Terminal mit dem Befehl

python recffmpeg-tray.py

starten und schauen was es für einen Fehler gibt. Falls es einen "Index out of range" Fehler ausspuckt ist wohl die Fensterbestimmungsroutine noch nicht ganz bugfrei.

LittleKoala

Anmeldungsdatum:
28. April 2010

Beiträge: 17

leszek "schrieb:

"Die Framerate sollte 25 Bilder pro Sekunde betragen. Überprüfen kannst du das indem du ffmpeg -i /pfad/zum/screencast.mp4 eingibst in ein Terminal und dir die Infos von FFmpeg zum Video anschaust."

Ich weiß gerad nicht, wie ich das hier ordentlich formatiert unterbringe, deshalb poste ich mal den paste-Link: http://paste.pocoo.org/show/327305/

Da steht "Seems stream 0 codec frame rate differs from container frame rate: 50.00 (50/1) → 2.08 (25/12)" usw. Bedeutet das was?

"Um kein Rauschen zu haben musst du bei Options → Set Audio Device einfach mal nix eingeben. "

Ich habe da nichts eingegeben.

"Falls es damit Partout nicht klappen will kannst du das Programm mal aus einem Terminal mit dem Befehl 'python recffmpeg-tray.py' starten und schauen was es für einen Fehler gibt. Falls es einen "Index out of range" Fehler ausspuckt ist wohl die Fensterbestimmungsroutine noch nicht ganz bugfrei."

Das Starten des Skripts aus dem Terminal heraus hat bei mir von Anfang an nicht funktioniert. Da springt die Anzeige auf eine leere Zeile, nur noch der Cursor ist da. Wenn ich das Skript per Doppelklick mit LMB über den Nautilus starte und "Im Terminal ausführen" anklicke, passiert das Gleiche. Der Terminal geht auf und ist leer, nur der Cursor blinkt.

leszek

(Themenstarter)
Avatar von leszek

Anmeldungsdatum:
10. Oktober 2006

Beiträge: 436

Wohnort: Köln

Das Starten des Skripts aus dem Terminal heraus hat bei mir von Anfang an nicht funktioniert. Da springt die Anzeige auf eine leere Zeile, nur noch der Cursor ist da. Wenn ich das Skript per Doppelklick mit LMB über den Nautilus starte und "Im Terminal ausführen" anklicke, passiert das Gleiche. Der Terminal geht auf und ist leer, nur der Cursor blinkt.

Das heißt es funktioniert xD. Solange er nicht zurück zum Eingabeprompt (also user@pcname~:$) springt.

Jetzt solltest du mit diesem offenen Terminal mal die "Record Window" Funktion ausprobieren und dann wirst du sicherlich eine Ausgabe im Terminal sehen.

Hast du übrigens an der Standardconfig was geändert ? Falls ja poste diese bitte hier nochmal (ordentlich formatiert mit dem codeblock bitte [Symbol mit dem Zahnrad im Forum wenn du eine Antwort schreibst]). Das was ich bisher aus der ffmpeg -i erkennen kann nutzt du eine ältere ffmpeg 0.5.1er Version und ich hier eine neuere 0.6er Version. Ich bin mir noch nicht sicher ob du deshalb Probleme mit der Framerate hast. Wird das Video denn nicht flüssig abgespielt oder wie bist du darauf gekommen, dass etwas mit der Framerate nicht klappt ?

LittleKoala

Anmeldungsdatum:
28. April 2010

Beiträge: 17

Hallo leszek,

"Jetzt solltest du mit diesem offenen Terminal mal die "Record Window" Funktion ausprobieren und dann wirst du sicherlich eine Ausgabe im Terminal sehen."

Hier mein Log aus dem Terminal:

http://paste.pocoo.org/show/327344/

An der Standardeinstellung habe ich nichts verändert.

"Das was ich bisher aus der ffmpeg -i erkennen kann nutzt du eine ältere ffmpeg 0.5.1er Version und ich hier eine neuere 0.6er Version."

Also, meine Synaptic zeigt mir auch als aktuelle Version nur die 0.5.1er an.

"Wird das Video denn nicht flüssig abgespielt oder wie bist du darauf gekommen, dass etwas mit der Framerate nicht klappt ? "

Die Wiedergabe springt etwa im 1-Sekunden-Rhythmus von Bild zu Bild.

LittleKoala

Anmeldungsdatum:
28. April 2010

Beiträge: 17

leszek

(Themenstarter)
Avatar von leszek

Anmeldungsdatum:
10. Oktober 2006

Beiträge: 436

Wohnort: Köln

Du nutzt scheinbar Ubuntu 10.04 also Lucid Lynx, wenn du meinst Version 0.5.1 von ffmpeg nur bekommen zu können. Maverick hat nämmlich schon 0.6 : http://packages.ubuntu.com/maverick/ffmpeg

Das wird wohl auch der Grund sein warum es bei dir nicht ganz funktioniert. Probiere vielleicht mal ffmpeg 0.6 aus der lucidbleed ppa. https://launchpad.net/~lucid-bleed/+archive/lucidbleed-exp Eine Anleitung was du zu tun hast steht auf der Seite. Kurz gesagt musst du folgenden Befehl im Terminal ausführen:

sudo add-apt-repository ppa:lucid-bleed/lucidbleed-exp

Danach solltest du in Synaptic die Paketliste neuladen und ffmpeg 0.6 sollte dir zur Verfügung stehen. Probiere es nach der Installation von ffmpeg 0.6 noch einmal mit dem aufnehmen bitte.

LittleKoala

Anmeldungsdatum:
28. April 2010

Beiträge: 17

Hallo leszek,

so, mal eine kurze Info zum Stand der Dinge.

Danke für Deinen Tipp mit den zusätzlichen Paketquellen, aber ich habe ein wenig Hemmungen, mich zu vieler "Fremdquellen" zu bedienen. Ich kann als absolut unerfahrener Benutzer ja auch nicht beurteilen, was am Ende eventuell für eine Instabilität des Systems sorgt. Ich würde natürlich auch mein System auf 10.10 updaten, aber damit will ich mich im Moment nicht beschäftigen. Die Medibuntu Bibliotheken hatte ich ja übrigens, wie ich schon schrieb, installiert.

Gerade eben ist aber etwas Interessantes passiert. Nachdem ich jetzt wieder viel ausprobiert habe (zuletzt mit den Recording-Optionen des VLC-Players) habe ich mich noch einmal Deinem Tool zugewandt, nur um zu schauen, ob das Löschen der von Dir eingetragenen Sounddevice-Einstellungen in der .config das Rauschen in der Aufzeichnung beseitigt. Dann habe ich noch einmal eine Aufnahme gemacht, und siehe da, abgesehen davon, dass das Rauschen nun nicht mehr auftrat, lief die Grafik nun einwandfrei, keine "Framerate von 1" mehr, und das sowohl im Standard-Videoplayer von Ubuntu als auch im VLC-Player. Weil mir dieser Sachverhalt so merkwürdig vorkam, habe ich gleich nochmal die Gegenprobe gemacht, die Sounddevice-Einstellungen wieder in die .config eingetragen, nochmal eine Aufnahme gemacht, und da war alles wieder wie vorher. Wieder kamen die Bilder mit einer Rate von 1 Bild/sec. Ich hoffe, diese Info hilft Dir weiter.

Abgesehen davon finde ich Dein Tool bis dahin ziemlich praktisch und unkompliziert. Wenn ich jetzt noch hoffen darf, dass die Aufzeichnung auch noch funktioniert, wenn ich mal so weit sein sollte und ein Mikro verwenden will, dann wäre ich erst mal happy.

Eine Frage habe ich allerdings noch. Ich habe zuvor (ebenfalls erfolgreich) mit dem VLC-Player aufgezeichnet. Mit diesem kann man ebenfalls eine .mp4 erzeugen. Diese Datei habe ich dann versucht auf Windows XP Pro 32Bit SP2 abszuspielen. Das funktionierte weder mit dem Windows Media PLayer noch mit dem Media Player Classic. Das K-Light Mega Codec Pack ist installiert. Hast Du eine Ahnung, warum die .mp4 dann nicht abspielbar ist? Also, abspielbar war sie schon, nur die Grafik war zerstört. Bei den .mp4-Dateien, die mit Deinem Prog erstellt wurden, ist es übrigens nicht so.

Grüße Uwe

leszek

(Themenstarter)
Avatar von leszek

Anmeldungsdatum:
10. Oktober 2006

Beiträge: 436

Wohnort: Köln

Das kommt auf eine Vielzahl von Faktoren an. Ich schätze mal du hast irgendeine Codec & Container Zusammensetzung gewählt, die die Windows Software nicht richtig abspielen kann. Aber ich kann dir da leider nicht großartig weiterhelfen, da ich Windows nur vom hören sagen kenne.

Zu dem Tool selbst. Audioaufnahmen, wie in den Testscreencasts zu sehen, funktionieren natürlich auch wunderbar.

LittleKoala

Anmeldungsdatum:
28. April 2010

Beiträge: 17

Also kannst Du mit der Information, dass das Abspielergebnis normal war, nachdem ich die Sounddevice-Eintragungen gelöscht habe, schon was anfangen? Das ist nicht komisch? Und wenn ich später ein Mikro benutze, muss ich nicht befürchten, dass das Problem erneut auftritt?

archy

Anmeldungsdatum:
24. November 2009

Beiträge: 1920

hallo,

ich habs gerade in lucid probiert, läuft, mag aber libfaac nicht, habe libmp3lame genommen. VLC spielt das mp4 sauber ab. Ist es auch möglich den Sound eines auf dem Desktop mit VLC abgespielten Films mit abzugreifen,

hw: 0,??

gruß

archy

Antworten |