Changing filesink location in probe function

Please provide complete information as applicable to your setup.

• Hardware Platform DGPU
• DeepStream Version 6.0.1
• NVIDIA GPU Driver Version 510.85.02
• Issue Type( questions, new requirements, bugs)
I got this error, while changing filesink location in probe function.

** (python3:28641): WARNING **: 14:24:50.878: Changing the `location’ property on filesink when a file is open is not supported.

• How to reproduce the issue ? (This is for bugs. Including which sample app is using, the configuration files content, the command line used and other details for reproducing)
changing filesink location in probe function will give thar error

my pipeline

• Requirement details( This is for new requirement. Including the module name-for which plugin or for which sample application, the function description)
how to change filesink location in the probe function?

You cannot change location in filesink when the pipeline is set to playing.
Try splitmuxsink instead.

how to change file location using condition in probe function?

As far as I know, you can’t change location in a probe function.
You can use splitmuxsink to emit a signal to change filename as per your condition.
Check splitmuxsink

You can emit split-now signal to trigger a file change event. And then you can create your filename in this callback

Error: gst-stream-error-quark: Could not multiplex stream. (10): gstqtmux.c(4561): gst_qt_mux_add_buffer (): /GstPipeline:pipeline0/GstSplitMuxSink:recording-sink2/GstMP4Mux:muxer:
Buffer has no PTS.

can you explain this and how to resolve this issue?

Umm, this usually happens when there is a timestamping issue in your buffers. Especially with RTSP streams where frames can drop frequently. mp4mux and qtmux are quite sensitive to this.
You can do a quick hack by changing your mux to matroskamux

I try with matroskamux and update

1 Like

thank you @marmikshah , its working

1 Like

I’ve been using splitmuxsink to split the recordings of a live video stream by length or by the “split now” cmd. The resulting video files are all timestamped with the “global time” from when the pipeline started.

File1 00:00 - 05:00

File2 05:00 - 10:00

File3 10:00 - 15:00

This is causing issues when playing back the files in certain video players that are expected a time stamp starting at 0.

What I’d like to do is reset the time stamping every time the recordings are split and a new file is started.

File1 00:00 - 05:00

File2 00:00 - 05:00

File3 00:00 - 05:00

can you help me to resolve this issue?

Sorry for the late reply.
You can check this property offset-to-zero for matroskamux.
This was a known issue in matroskamux and has been fixed

@marmikshah thanks for your help, @gowtham2 Is this still an DeepStream issue to support?

@marmikshah I am using splitmuxsink, how set offset-to-zero property in python

I think you will first need to build the matroskamux plugin from source because the current version installed with deepstream does not have the matroskamux’s bug fix.
And then change the property in matroskamux. It is not a property of splitmuxsink

@marmikshah can you guide me how to build the matroskamux plugin

matroskamux is in gst-plugins-good module, you can rebuild gst-plugins-good , please refer to Gstreamer build doc, README · discontinued-for-monorepo · GStreamer / gst-plugins-good · GitLab

@fanzh for splitmuxsink which gst plugin, I have to rebuild

No need to rebuild splitmux. Rebuilding matroskamux might be enough.
But please make sure to test this inside a docker container first because if something goes wrong when building on host, you may break your gstreamer installation and will be very messy to fix (unless you’re okay to flash the device).

I want to rebuild splitmuxsink if matroskamux doesn’t work.

Oh seems splitmuxsink is also in the same gst-good-plugins package.

ok I will check I update.