Dies funktioniert:Warum steht diese Gstreamer-Pipeline still?
gst-launch-0.10 \
videotestsrc ! ffmpegcolorspace ! 'video/x-raw-yuv' ! mux. \
audiotestsrc ! audioconvert ! 'audio/x-raw-int,rate=44100,channels=1' ! mux. \
avimux name=mux ! filesink location=gst.avi
Ich kann es für eine Weile laufen lassen, es töten, und dann totem gst.avi
zeigt eine schöne Testkarte mit Ton.
jedoch versuchen, etwas nützlicher wie
gst-launch-0.10 \
filesrc location=MVI_2034.AVI ! decodebin name=dec \
dec. ! ffmpegcolorspace ! 'video/x-raw-yuv' ! mux. \
dec. ! audioconvert ! 'audio/x-raw-int,rate=44100,channels=1' ! mux. \
avimux name=mux ! filesink location=gst.avi
zu tun, zeigt es nur
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
und dann auf unbestimmte Zeit Ständen.
Was ist der Trick, um die Version mit decidebin rollen zu bekommen?
Beim Muxen oder Demuxen sind Puffer erforderlich. Hier kommen die Warteschlangenelemente ins Spiel. Sie können die Feinabstimmung noch verfeinern, indem Sie die Anzahl der Puffer in der Warteschlange angeben. –
Danke für den Tipp. Stellt sich heraus, während die obige Pipeline für 640x480 Video funktioniert, musste ich die maximale Größe Bytes der abschließenden Videowarteschlange erhöhen, um es mit 1280x720 Inhalt nicht zu Deadlock zu bekommen. – timday