Add metadata to every video frame with GStreamer and save whole video
I have a pipeline as below in C++;
GstElement* pipeline = gst_pipeline_new("video_pipeline"); GstElement* videoSrc = gst_element_factory_make("filesrc", "video_source"); GstElement* decoder = gst_element_factory_make("decodebin", "decoder"); GstElement* nvvideoconvert = gst_element_factory_make("nvvideoconvert", "nvidiaconverter"); GstElement* videoConvert = gst_element_factory_make("videoconvert", "convert"); GstElement* videoScale = gst_element_factory_make("videoscale", "video_scale"); GstElement* videoFilter = gst_element_factory_make("capsfilter", "filter"); GstElement* encoder = gst_element_factory_make("vp8enc", "encoder"); GstElement* mux = gst_element_factory_make("avimux", "muxer"); GstElement* videoSink = gst_element_factory_make("filesink", "video_sink");
We want to add and read metadata(i.e. frame number for every frame) with "GstMeta", "gst_buffer_add_meta", "gst_buffer_get_meta" functions. Saved video must be this metadata(frame number).
We can add metadata to buffer and also read metadata but we cannot save video with metadata. We rescreach this problem but "gst_buffer_add_meta" function add metadata only in buffer not video file.
How can i save video with metadata for every frame?
Thanks in advance!