<div dir="ltr"><div>Hi All,</div><div><br></div><div>FYI: I got it working with the following pipeline.</div><div><br></div><div><pre class="gmail-c-mrkdwn__pre" style="box-sizing:inherit;margin:4px 0px;padding:8px;font-size:12px;line-height:1.50001;font-variant-ligatures:none;white-space:pre-wrap;word-break:normal;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;border-radius:4px;color:rgb(29,28,29);font-style:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial">gst-launch-1.0 filesrc location="/data/qwake/in/original.bin" ! \
videoparse width=320 height=240 format=nv12 framerate=30/1 ! \
omxh264enc target-bitrate=1000000 qos=true ! \
h264parse ! \
mp4mux ! \
filesink location="/data/qwake/out/encode.mp4"<br><br></pre><pre class="gmail-c-mrkdwn__pre" style="box-sizing:inherit;margin:4px 0px;padding:8px;font-size:12px;line-height:1.50001;font-variant-ligatures:none;white-space:pre-wrap;word-break:normal;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;border-radius:4px;color:rgb(29,28,29);font-style:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial">Cheers,<br><br></pre><pre class="gmail-c-mrkdwn__pre" style="box-sizing:inherit;margin:4px 0px;padding:8px;font-size:12px;line-height:1.50001;font-variant-ligatures:none;white-space:pre-wrap;word-break:normal;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;border-radius:4px;color:rgb(29,28,29);font-style:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial">Andre<br></pre></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jun 2, 2022 at 7:22 PM Andre Kirchner <andre.kirchner@qwake.tech> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi All,<br><br>Please let me know if this is not the right mailing list for this type of question.<br><br>I started learning GStreamer, and created a pipeline with the following 4 elements.<br><br>appsrc -> capsfilter -> omxh264enc -> fakesink<br><br>appsrc elements were set to<br><br>caps: "video/x-raw",<br> "format", G_TYPE_STRING, "I420",<br> "width", G_TYPE_INT, 320,<br> "height", G_TYPE_INT, 240,<br> "framerate", GST_TYPE_FRACTION, 30, 1,<br> NULL<br>stream-type: GST_APP_STREAM_TYPE_STREAM<br>format: GST_FORMAT_TIME<br>blocksize: 320 * 240 * 3 / 2<br>is-live: TRUE<br><br>capsfilter elements were set to<br><br>caps: "video/x-raw",<br> "format", G_TYPE_STRING, "I420",<br> "width", G_TYPE_INT, 320,<br> "height", G_TYPE_INT, 240,<br> "framerate", GST_TYPE_FRACTION, 30, 1,<br> NULL<br><br>omxh264enc elements were set to<br><br>target-bitrate: 250000<br><br>But I'm getting the following erros when I start streaming.<br><br>0:00:00.083272126 2239 0x55c03260a0 WARN omxvideoenc gstomxvideoenc.c:3068:gst_omx_video_enc_propose_allocation:<encoder> allocation query does not contain caps<br>0:00:00.084553484 2239 0x55c03260a0 WARN basetransform gstbasetransform.c:1355:gst_base_transform_setcaps:<mYuvFilter> transform could not transform video/x-raw, format=(string)I420, width=(int)320<br>, height=(int)240, framerate=(fraction)30/1 in anything we support<br>Got state-changed message<br>0:00:00.093299248 2239 0x55c03260a0 WARN basetransform gstbasetransform.c:1355:gst_base_transform_setcaps:<mYuvFilter> transform could not transform video/x-raw, format=(string)I420, width=(int)320<br>, height=(int)240, framerate=(fraction)30/1 in anything we support<br>0:00:00.094138019 2239 0x55c03260a0 WARN basetransform gstbasetransform.c:1355:gst_base_transform_setcaps:<mYuvFilter> transform could not transform video/x-raw, format=(string)I420, width=(int)320<br>, height=(int)240, framerate=(fraction)30/1 in anything we support<br>0:00:00.094328376 2239 0x55c03260a0 WARN basesrc gstbasesrc.c:3055:gst_base_src_loop:<source> error: Internal data stream error.<br>0:00:00.094491287 2239 0x55c03260a0 WARN basesrc gstbasesrc.c:3055:gst_base_src_loop:<source> error: streaming stopped, reason not-negotiated (-4)<br>0:00:00.095398492 2239 0x55c03260a0 WARN basetransform gstbasetransform.c:1355:gst_base_transform_setcaps:<mYuvFilter> transform could not transform video/x-raw, format=(string)I420, width=(int)320<br>, height=(int)240, framerate=(fraction)30/1 in anything we support<br>0:00:00.096068675 2239 0x55c03260a0 WARN basetransform gstbasetransform.c:1355:gst_base_transform_setcaps:<mYuvFilter> transform could not transform video/x-raw, format=(string)I420, width=(int)320<br>, height=(int)240, framerate=(fraction)30/1 in anything we support<br>0:00:00.096643497 2239 0x55c03260a0 WARN basetransform gstbasetransform.c:1355:gst_base_transform_setcaps:<mYuvFilter> transform could not transform video/x-raw, format=(string)I420, width=(int)320<br>, height=(int)240, framerate=(fraction)30/1 in anything we support<br><br>Any idea how to fix those errors?<br><br>Bellow are descriptions of the elements in the pipeline I got using gst-streamer-1.0<br><br>Thanks :-)<br><br>********************************************<br>****************** appsrc ******************<br>********************************************<br>...<br>Element Properties:<br> name : The name of the object<br> flags: readable, writable<br> String. Default: "appsrc0"<br> parent : The parent of the object<br> flags: readable, writable<br> Object of type "GstObject"<br> blocksize : Size in bytes to read per buffer (-1 = default)<br> flags: readable, writable<br> Unsigned Integer. Range: 0 - 4294967295 Default: 4096 <br> num-buffers : Number of buffers to output before sending EOS (-1 = unlimited)<br> flags: readable, writable<br> Integer. Range: -1 - 2147483647 Default: -1 <br> typefind : Run typefind before negotiating (deprecated, non-functional)<br> flags: readable, writable, deprecated<br> Boolean. Default: false<br> do-timestamp : Apply current stream time to buffers<br> flags: readable, writable<br> Boolean. Default: false<br> caps : The allowed caps for the src pad<br> flags: readable, writable<br> Caps (NULL)<br> size : The size of the data stream in bytes (-1 if unknown)<br> flags: readable, writable<br> Integer64. Range: -1 - 9223372036854775807 Default: -1 <br> stream-type : the type of the stream<br> flags: readable, writable<br> Enum "GstAppStreamType" Default: 0, "stream"<br> (0): stream - GST_APP_STREAM_TYPE_STREAM<br> (1): seekable - GST_APP_STREAM_TYPE_SEEKABLE<br> (2): random-access - GST_APP_STREAM_TYPE_RANDOM_ACCESS<br> max-bytes : The maximum number of bytes to queue internally (0 = unlimited)<br> flags: readable, writable<br> Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 200000 <br> format : The format of the segment events and seek<br> flags: readable, writable<br> Enum "GstFormat" Default: 2, "bytes"<br> (0): undefined - GST_FORMAT_UNDEFINED<br> (1): default - GST_FORMAT_DEFAULT<br> (2): bytes - GST_FORMAT_BYTES<br> (3): time - GST_FORMAT_TIME<br> (4): buffers - GST_FORMAT_BUFFERS<br> (5): percent - GST_FORMAT_PERCENT<br> block : Block push-buffer when max-bytes are queued<br> flags: readable, writable<br> Boolean. Default: false<br> is-live : Whether to act as a live source<br> flags: readable, writable<br> Boolean. Default: false<br> min-latency : The minimum latency (-1 = default)<br> flags: readable, writable<br> Integer64. Range: -1 - 9223372036854775807 Default: -1 <br> max-latency : The maximum latency (-1 = unlimited)<br> flags: readable, writable<br> Integer64. Range: -1 - 9223372036854775807 Default: -1 <br> emit-signals : Emit need-data, enough-data and seek-data signals<br> flags: readable, writable<br> Boolean. Default: true<br> min-percent : Emit need-data when queued bytes drops below this percent of max-bytes<br> flags: readable, writable<br> Unsigned Integer. Range: 0 - 100 Default: 0 <br> current-level-bytes : The number of currently queued bytes<br> flags: readable<br> Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0 <br> duration : The duration of the data stream in nanoseconds (GST_CLOCK_TIME_NONE if unknown)<br> flags: readable, writable<br> Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 18446744073709551615<br>...<br><br>********************************************<br>**************** capsfilter ****************<br>********************************************<br>...<br>Element Properties:<br> name : The name of the object<br> flags: readable, writable<br> String. Default: "capsfilter0"<br> parent : The parent of the object<br> flags: readable, writable<br> Object of type "GstObject"<br> qos : Handle Quality-of-Service events<br> flags: readable, writable<br> Boolean. Default: false<br> caps : Restrict the possible allowed capabilities (NULL means ANY). Setting this property takes a reference to the supplied GstCaps object.<br> flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state<br> ANY<br><br> caps-change-mode : Filter caps change behaviour<br> flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state<br> Enum "GstCapsFilterCapsChangeMode" Default: 0, "immediate"<br> (0): immediate - Only accept the current filter caps<br> (1): delayed - Temporarily accept previous filter caps<br><br>********************************************<br>**************** omxh264enc ****************<br>********************************************<br>...<br>Element Properties:<br> name : The name of the object<br> flags: readable, writable<br> String. Default: "omxh264enc-omxh264enc0"<br> parent : The parent of the object<br> flags: readable, writable<br> Object of type "GstObject"<br> qos : Handle Quality-of-Service events from downstream<br> flags: readable, writable<br> Boolean. Default: false<br> control-rate : Bitrate control method<br> flags: readable, writable, changeable only in NULL or READY state<br> Enum "GstOMXVideoEncControlRate" Default: -1, "default"<br> (0): disable - Disable<br> (1): variable - Variable<br> (2): constant - Constant<br> (3): variable-skip-frames - Variable Skip Frames<br> (4): constant-skip-frames - Constant Skip Frames<br> (-1): default - Component Default<br> target-bitrate : Target bitrate in bits per second (0xffffffff=component default)<br> flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state<br> Unsigned Integer. Range: 0 - 4294967295 Default: 4294967295 <br> quant-i-frames : Quantization parameter for I-frames (0xffffffff=component default)<br> flags: readable, writable, changeable only in NULL or READY state<br> Unsigned Integer. Range: 0 - 4294967295 Default: 4294967295 <br> quant-p-frames : Quantization parameter for P-frames (0xffffffff=component default)<br> flags: readable, writable, changeable only in NULL or READY state<br> Unsigned Integer. Range: 0 - 4294967295 Default: 4294967295 <br> quant-b-frames : Quantization parameter for B-frames (0xffffffff=component default)<br> flags: readable, writable, changeable only in NULL or READY state<br> Unsigned Integer. Range: 0 - 4294967295 Default: 4294967295 <br> periodicity-idr : Periodicity of IDR frames (0xffffffff=component default)<br> flags: readable, writable, changeable only in NULL or READY state<br> Unsigned Integer. Range: 0 - 4294967295 Default: 4294967295 <br> periodicty-idr : Periodicity of IDR frames (0xffffffff=component default) DEPRECATED - only for backwards compat<br> flags: readable, writable, changeable only in NULL or READY state<br> Unsigned Integer. Range: 0 - 4294967295 Default: 4294967295 <br> interval-intraframes: Interval of coding Intra frames (0xffffffff=component default)<br> flags: readable, writable, changeable only in NULL or READY state<br> Unsigned Integer. Range: 0 - 4294967295 Default: 4294967295 <br> b-frames : Number of B-frames between two consecutive I-frames (0xffffffff=component default)<br> flags: readable, writable, changeable only in NULL or READY state<br> Unsigned Integer. Range: 0 - 4294967295 Default: 4294967295 <br> entropy-mode : Entropy mode for encoding process<br> flags: readable, writable, changeable only in NULL or READY state<br> Enum "GstOMXH264EncEntropyMode" Default: -1, "default"<br> (0): CAVLC - CAVLC entropy mode<br> (1): CABAC - CABAC entropy mode<br> (-1): default - Component Default<br> constrained-intra-prediction: If enabled, prediction only uses residual data and decoded samples from neighbouring coding blocks coded using intra prediction modes<br> flags: readable, writable, changeable only in NULL or READY state<br> Boolean. Default: false<br> loop-filter-mode : Enable or disable the deblocking filter (0xffffffff=component default)<br> flags: readable, writable, changeable only in NULL or READY state<br> Enum "GstOMXH264EncLoopFilter" Default: -1, "default"<br> (0): enable - Enable deblocking filter<br> (1): disable - Disable deblocking filter<br> (2): disable-slice-boundary - Disables deblocking filter on slice boundary<br> (-1): default - Component Default<br><br>********************************************<br>***************** fakesink *****************<br>********************************************<br>...<br>Element Properties:<br> name : The name of the object<br> flags: readable, writable<br> String. Default: "fakesink0"<br> parent : The parent of the object<br> flags: readable, writable<br> Object of type "GstObject"<br> sync : Sync on the clock<br> flags: readable, writable<br> Boolean. Default: false<br> max-lateness : Maximum number of nanoseconds that a buffer can be late before it is dropped (-1 unlimited)<br> flags: readable, writable<br> Integer64. Range: -1 - 9223372036854775807 Default: -1 <br> qos : Generate Quality-of-Service events upstream<br> flags: readable, writable<br> Boolean. Default: false<br> async : Go asynchronously to PAUSED<br> flags: readable, writable<br> Boolean. Default: true<br> ts-offset : Timestamp offset in nanoseconds<br> flags: readable, writable<br> Integer64. Range: -9223372036854775808 - 9223372036854775807 Default: 0 <br> enable-last-sample : Enable the last-sample property<br> flags: readable, writable<br> Boolean. Default: true<br> last-sample : The last sample received in the sink<br> flags: readable<br> Boxed pointer of type "GstSample"<br> blocksize : Size in bytes to pull per buffer (0 = default)<br> flags: readable, writable<br> Unsigned Integer. Range: 0 - 4294967295 Default: 4096 <br> render-delay : Additional render delay of the sink in nanoseconds<br> flags: readable, writable<br> Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0 <br> throttle-time : The time to keep between rendered buffers (0 = disabled)<br> flags: readable, writable<br> Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0 <br> max-bitrate : The maximum bits per second to render (0 = disabled)<br> flags: readable, writable<br> Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0 <br> state-error : Generate a state change error<br> flags: readable, writable<br> Enum "GstFakeSinkStateError" Default: 0, "none"<br> (0): none - No state change errors<br> (1): null-to-ready - Fail state change from NULL to READY<br> (2): ready-to-paused - Fail state change from READY to PAUSED<br> (3): paused-to-playing - Fail state change from PAUSED to PLAYING<br> (4): playing-to-paused - Fail state change from PLAYING to PAUSED<br> (5): paused-to-ready - Fail state change from PAUSED to READY<br> (6): ready-to-null - Fail state change from READY to NULL<br> silent : Don't produce last_message events<br> flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state<br> Boolean. Default: true<br> dump : Dump buffer contents to stdout<br> flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state<br> Boolean. Default: false<br> signal-handoffs : Send a signal before unreffing the buffer<br> flags: readable, writable<br> Boolean. Default: false<br> drop-out-of-segment : Drop and don't render / hand off out-of-segment buffers<br> flags: readable, writable<br> Boolean. Default: true<br> last-message : The message describing current status<br> flags: readable<br> String. Default: null<br> can-activate-push : Can activate in push mode<br> flags: readable, writable<br> Boolean. Default: true<br> can-activate-pull : Can activate in pull mode<br> flags: readable, writable<br> Boolean. Default: false<br> num-buffers : Number of buffers to accept going EOS<br> flags: readable, writable<br> Integer. Range: -1 - 2147483647 Default: -1 <br><br><br><br><br><br></div>
</blockquote></div>