PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ViCuTo - Noch ein Tool zum Videoschneiden



monarc99
27.09.2015, 13:55
Bin gerade am Spielen damit ... funktioniert bislang sehr gut. :)

Auch spielen die Dateien problemlos mit mpv. Ich muss allerdings noch testen, ob sie auf meinem Intel Nuc/Openelec die Schnitte überleben, der ist wesentlich empfindlicher.

Aber so schon mal top :D

AndyK70
27.09.2015, 17:19
Wie erstellt man damit denn die Schnittliste, bzw. wie ermittelt man wo man die Schnitte ansetzen soll/will/kann?
Das fehlt mir irgendwie noch in der Beschreibung.

monarc99
27.09.2015, 21:37
Das sind genau die Testfälle, die mich interessieren. VLC und MPlayer schlucken ja schließlich vieles.

Gute und schlechte Nachricht:

Also die geschnittenen Dateien überleben es, wenn sie in MKV (mkvmerge) und MP4 (mp4box) umgepackt werden. Das ist schon mal sehr gut.
Aber bei meinem HTPC (Openelec/Kodi auf einem Intel Nuc mit VAAPI) bleibt das Bild beim Schnitt stehen. Sowohl das AVI, als auch die umgewandelten MKV und MP4.

Ich vermute die Kodiereinstellungen bzw. vielleicht auch die x264 Version ist zu unterschiedlich. Oder es fehlt sowas wie --stitchable bei neueren x264 encodern. (https://mailman.videolan.org/pipermail/x264-devel/2013-July/010167.html)


Was du dir überlegen kannst, ob du Support fürs Einlesen von cutlist - Textdateien einbauen möchtest.

JanS
27.09.2015, 22:22
Aber bei meinem HTPC (Openelec/Kodi auf einem Intel Nuc mit VAAPI) bleibt das Bild beim Schnitt stehen. Sowohl das AVI, als auch die umgewandelten MKV und MP4.

Ich vermute die Kodiereinstellungen bzw. vielleicht auch die x264 Version ist zu unterschiedlich. Oder es fehlt sowas wie --stitchable bei neueren x264 encodern. (https://mailman.videolan.org/pipermail/x264-devel/2013-July/010167.html)

Schade. Denn eigentlich ermöglicht der h264-Standard es ja, unterschiedlichste Encoding-Settings für verschiedene Teile des Streams zu verwenden. Dann werde ich für eine spätere Version der 0.2.x Reihe doch versuchen müssen, die SPS/PPS exakt zu reproduzieren.


Was du dir überlegen kannst, ob du Support fürs Einlesen von cutlist - Textdateien einbauen möchtest.

Oder einen kleinen Python/Bash-Wrapper dafür schreiben. Das werde ich mir noch mal überlegen, welche der Alternativen ich da nehme.

JanS
29.09.2015, 14:24
Tja, sieht so aus, als ob er das Umschalten zwischen verschiedenen SPS/PPS nicht unterstützt. Dann werde ich tatsächlich in 0.2.x eine Funktion einbauen müssen, die dieselben Kodiereinstellungen reproduziert. Wenn es einen Hardwareplayer gibt, der das nicht hinkriegt, wird es sicherlich noch viele weitere geben.

tegg
16.11.2015, 15:21
wird noch dran gearbeitet ? Ich hab das ganze mal versucht per cygwin schnell in Windows zum laufen zu bekommen, jedoch hängts an den gstream binaries, die unter cygwin nicht gefunden werden (obwohl installiert)

JanS
21.11.2015, 12:47
Hallo tegg,

sorry, dass ich so spät antworte. An Windows Binaries arbeite ich momentan auch. Ich habe das Problem, dass der Linker unzählige undefined references ausspuckt, obwohl die Bibliotheken vorhanden sind und dem Linker der exakte Ort übergeben wird. Also versuche ich gerade durchzuprobieren, mit welchen Einstellungen man den Linker überreden kann. Das hat leider schon viel zu viel Zeit gekostet. Ansonsten arbeite gerade an einer Überarbeitung einzelner interner Strukturen u.a. einem Pluginsystem, damit ich in Zukunft Vicuto variabler ergänzen kann.

Falls du irgendwas zum Kompilieren unter Windows herausfindest, lass es mich wissen.

tegg
23.11.2015, 12:29
ja, das kommt mir bekannt vor, an dieser Stelle hänge ich jetzt auch



elements/libvicutoelements.a(vicuto-smart-encoder.o): In function `vicuto_smart_encoder_find_elements':
/home/cygwin/vicuto-0.1.0/src/elements/vicuto-smart-encoder.c:1091: undefined reference to `gst_element_class_get_pad_template'
/home/cygwin/vicuto-0.1.0/src/elements/vicuto-smart-encoder.c:1091: undefined reference to `gst_pad_template_get_caps'
/home/cygwin/vicuto-0.1.0/src/elements/vicuto-smart-encoder.c:1093: undefined reference to `gst_caps_new_empty'
/home/cygwin/vicuto-0.1.0/src/elements/vicuto-smart-encoder.c:1094: undefined reference to `gst_caps_get_size'
/home/cygwin/vicuto-0.1.0/src/elements/vicuto-smart-encoder.c:1102: undefined reference to `_gst_debug_min'
/home/cygwin/vicuto-0.1.0/src/elements/vicuto-smart-encoder.c:1125: undefined reference to `gst_debug_log'
/home/cygwin/vicuto-0.1.0/src/elements/vicuto-smart-encoder.c:1126: undefined reference to `gst_caps_append'
/home/cygwin/vicuto-0.1.0/src/elements/vicuto-smart-encoder.c:1097: undefined reference to `gst_caps_copy_nth'
/home/cygwin/vicuto-0.1.0/src/elements/vicuto-smart-encoder.c:1107: undefined reference to `_gst_debug_min'
/home/cygwin/vicuto-0.1.0/src/elements/vicuto-smart-encoder.c:1107: undefined reference to `gst_debug_log'
/home/cygwin/vicuto-0.1.0/src/elements/vicuto-smart-encoder.c:1115: undefined reference to `gst_object_unref'
/home/cygwin/vicuto-0.1.0/src/elements/vicuto-smart-encoder.c:1122: undefined reference to `gst_object_unref'
/home/cygwin/vicuto-0.1.0/src/elements/vicuto-smart-encoder.c:1125: undefined reference to `_gst_debug_min'


usw.

JanS
17.01.2016, 21:37
Hallo,

ich habe jetzt die nächste Version von ViCuTo fertig. Sie enthält ein paar wichtige Fixes, damit ViCuTo auch mit GStreamer 1.6.x funktioniert.

Ich habe zudem ein Pluginsystem implementiert. Das erste und bisher einzige Plugin ist ein cutlist plugin, das die Option --cutlist hinzufügt, um die Cuts aus einer Cutlist auf die folgende Datei anzuwenden:

vicuto-cli --cutlist file1.cutlist -i file1.avi -o result.avi
Die Plugins werden standardmäßig in einem Verzeichnis gesucht, das beim Kompilieren festgelegt wird (wenn man keinen anderen Prefix angibt /usr/local/lib/vicuto/plugins). Will man das Programm mit Plugins testen, ohne es zu installieren, muss man also mit der --plugin-dir Option das Verzeichnis angeben, in dem die Plugins sind.

vicuto-cli --plugin-dir build-dir/src/plugins --cutlist file1.cutlist -i file1.avi -o result.avi

Auf meiner TODO-Liste stehen weiter die Windows Binaries und das Abspielen auf Hardware-Playern. Bei den Windows Binaries bin ich inzwischen etwas schlauer, aber noch lange nicht fertig. Schließlich muss ich jetzt auch noch das Pluginsystem nach Windows portieren. Für das Abspielen auf Hardware-Playern hoffe ich mit 0.2 einige Verbesserungen liefern zu können.

monarc99
17.01.2016, 22:15
Prima :)

Kann man das Projekt auch irgendwie per git oder svn laden?
Kann bei sourceforge leider nix dazu finden.

JanS
18.01.2016, 07:50
Kann man das Projekt auch irgendwie per git oder svn laden?
Kann bei sourceforge leider nix dazu finden.

Wenn man bei der Projekt-Übersicht auf Code geht, zeigt sourceforge einem die Kommandozeile für anonymen git-Zugriff an:

git clone git://git.code.sf.net/p/vicuto/code vicuto-code
Diesen Code muss man allerdings mit autogen.sh konfigurieren, damit überhaupt erst das configure Skript erzeugt wird.

Wenn du etwas mitarbeiten willst, kann ich dir auch Schreibrechte geben :) falls du bei Sourceforge angemeldet bist.

monarc99
18.01.2016, 21:52
Wenn man bei der Projekt-Übersicht auf Code geht, zeigt sourceforge einem die Kommandozeile für anonymen git-Zugriff an:

git clone git://git.code.sf.net/p/vicuto/code vicuto-code
Diesen Code muss man allerdings mit autogen.sh konfigurieren, damit überhaupt erst das configure Skript erzeugt wird.

Wenn du etwas mitarbeiten willst, kann ich dir auch Schreibrechte geben :) falls du bei Sourceforge angemeldet bist.
Danke, hat funktioniert :)

Danke fürs Angebot der Schreibrechte, aber ich fürchte, ich hätte eh keine Zeit etwas zu machen. Auch wenn es mich interessieren würde. :)

tegg
28.01.2016, 14:33
ist gstreamer 1.2 unbedingt notwendig ? :wasntme:

cygwin 32


checking for VICUTOCLI... yes
checking for GSTREAMER... no
configure: error: Package requirements (gstreamer-pbutils-1.0 >= 1.2
gstreamer-base-1.0 >= 1.2
gstreamer-1.0 >= 1.2) were not met:

No package 'gstreamer-pbutils-1.0' found
No package 'gstreamer-base-1.0' found
No package 'gstreamer-1.0' found


EDIT, wobei mir gerade auffällt das 1.6.1 installiert ist... :o

EDIT, libgstreamer vergessen..... :D


Ergebnis


Making all in utilities
make[3]: Verzeichnis „/home/cygwin/vicuto-code/src/utilities“ wird betreten
CXX vicuto-base-config.o
CXX vicuto-conversions.o
vicuto-conversions.cc: In Funktion »int64_t Vicuto::ustring_to_nanoseconds(const
vicuto-conversions.cc:42:12: Fehler: »stoll« ist kein Element von »std«
return std::stoll (strv[0]) * 1000000000;
^
vicuto-conversions.cc:59:12: Fehler: »stoll« ist kein Element von »std«
return std::stoll (strv[0]) * 1000000000 + std::stoll (strv[1]);
^
vicuto-conversions.cc:59:48: Fehler: »stoll« ist kein Element von »std«
return std::stoll (strv[0]) * 1000000000 + std::stoll (strv[1]);
^
Makefile:425: die Regel für Ziel „vicuto-conversions.o“ scheiterte
make[3]: *** [vicuto-conversions.o] Fehler 1
make[3]: Verzeichnis „/home/cygwin/vicuto-code/src/utilities“ wird verlassen
Makefile:621: die Regel für Ziel „all-recursive“ scheiterte
make[2]: *** [all-recursive] Fehler 1
make[2]: Verzeichnis „/home/cygwin/vicuto-code/src“ wird verlassen
Makefile:508: die Regel für Ziel „all-recursive“ scheiterte
make[1]: *** [all-recursive] Fehler 1
make[1]: Verzeichnis „/home/cygwin/vicuto-code“ wird verlassen
Makefile:418: die Regel für Ziel „all“ scheiterte
make: *** [all] Fehler 2

tegg
02.02.2016, 15:00
unter Debian klappts aber auch noch nicht ganz



~/vicuto-0.1.1/src$ ./vicuto-cli --plugin-dir plugins/ --cutlist ../../mntsmb/OTR/Elementary_S03E16_15.10.26_22-15_sat1_60_TVOON_DE.mpg.HQ.avi.cutlist -i ../../mntsmb/OTR/Elementary_S03E16_15.10.26_22-15_sat1_60_TVOON_DE.mpg.HQ.avi -o ../../mntsmb/OTR/Elementary_S03E16_15.10.26_22-15_sat1_60_TVOON_DE.mpg.HQ.cut.avi
ViCuTo v0.1.1 using GStreamer v1.4.4
http://sourceforge.net/projects/vicuto/

Empty container list.
Error:
Discoverer: Invalid stream id in file file:///home/user/mntsmb/OTR/Elementary_S03E16_15.10.26_22-15_sat1_60_TVOON_DE.mpg.HQ.avi



~/vicuto-0.1.1/src$ ./vicuto-cli -c 311.28:611.28 -i ../../mntsmb/OTR/Elementary_S03E16_15.10.26_22-15_sat1_60_TVOON_DE.mpg.HQ.avi -o ../../mntsmb/OTR/Elementary_S03E16_15.10.26_22-15_sat1_60_TVOON_DE.mpg.HQ.cut.avi
ViCuTo v0.1.1 using GStreamer v1.4.4
http://sourceforge.net/projects/vicuto/

Empty container list.
Error:
Discoverer: Invalid stream id in file file:///home/user/mntsmb/OTR/Elementary_S03E16_15.10.26_22-15_sat1_60_TVOON_DE.mpg.HQ.avi
spaegele@debian386:~/vicuto-0.1.1/src$

JanS
04.02.2016, 19:51
Hallo tegg,

std::stoll ist eine C++11 Funktion. Welche Version hat denn der C++ Compiler unter Cygwin? Ab 4.7.3 sollte es eigentlich laufen.

Die Fehlermeldung unter Debian bedeutet, dass das avidemux element keine korrekten stream ids sendet. Mit GStreamer 1.4.5 hatte ich in dieser Hinsicht nie Probleme. Vielleicht hilft hier ein Update von GStreamer. Denn die stream ids sind intern leider unverzichtbar, um die einzelnen Streams zweifelsfrei zu identifizieren. Ein ähnliches Problem habe ich momentan unter GStreamer 1.6.2. Dort wird die stream-id, die offensichtlich richtig erzeugt wird, von meinem hook nicht abgefangen.