Embedding GPS and timestamp tags on a per frame basis

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Embedding GPS and timestamp tags on a per frame basis

pisymbol .
I have a system with two cameras that are recording and eventually landing here:

matroskamux name="muxer" streamable=true ! multifilesink post-messages=true next-file=5 max-file-duration=60000000000

I have two other pipelines that end in h264parse ! muxer.video_[01] to process the streams. What I want is for every frame to somehow squirrel away both a timestamp and a GPS location. The GPS location can be retrieved from onboard hardware.

First question: Is this possible?

I see a very similar request here regarding just timestamps:


What I'm not sure about is that this has to be a custom plugin (at least for timestamping)? There is nothing out of the box that can at least timestamp frames? In the original thread, it seems he wanted the timestamp in the EXIF header. I believe there is also room their for a geotag as well, right?

On StackOverflow, someone mentioned GstMeta() but that seems like for a message bus passing approach than a tag event one but this is all new to me.

Any general pointers would be much appreciated,

-aps

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Embedding GPS and timestamp tags on a per frame basis

Vinod Kesti
Time code meta data is supported for video buffer through GstMeta().

gst_buffer_add_video_time_code_meta ()

For more you can refer decklinkvideosrc code.
https://github.com/GStreamer/gst-plugins-bad/blob/master/sys/decklink/gstdecklinkvideosrc.cpp



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Embedding GPS and timestamp tags on a per frame basis

Kaj-Michael Lang
In reply to this post by pisymbol .
On Mon, 2019-06-03 at 14:29 -0400, pisymbol wrote:
> What I want is for every frame to somehow squirrel away both a
> timestamp and a GPS location.

This reminded me of something I was trying to do almost 10 years ago,
it didn't work properly at the time with 0.10 so I dropped it and
forgot all about it.

Just for fun I ported my very simple test app over to the 1.0 API and
at least with jpeg files using jifmux is seems to work now.

I haven't tried with any video formats, don't know if any supports that
kind of metadata per frame.

Anyway, the crappy code is on github at 
https://github.com/oniongarlic/gpsvideo



--
Kaj-Michael Lang <[hidden email]>

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Embedding GPS and timestamp tags on a per frame basis

pisymbol .


On Tue, Jun 4, 2019 at 3:37 AM Kaj-Michael Lang <[hidden email]> wrote:
On Mon, 2019-06-03 at 14:29 -0400, pisymbol wrote:
> What I want is for every frame to somehow squirrel away both a
> timestamp and a GPS location.

This reminded me of something I was trying to do almost 10 years ago,
it didn't work properly at the time with 0.10 so I dropped it and
forgot all about it.

Just for fun I ported my very simple test app over to the 1.0 API and
at least with jpeg files using jifmux is seems to work now.

I haven't tried with any video formats, don't know if any supports that
kind of metadata per frame.

Anyway, the crappy code is on github at 
https://github.com/oniongarlic/gpsvideo

Thank you!

What's interesting is that the nvcamersrc plugin I'm using has a do_timestamp option but I'm not sure what it does or where the timestamps get stored. But I'd really like a way to geotag every frame.

-aps

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Embedding GPS and timestamp tags on a per frame basis

pisymbol .
In reply to this post by Vinod Kesti

On Tue, Jun 4, 2019 at 1:30 AM Vinod Kesti <[hidden email]> wrote:
Time code meta data is supported for video buffer through GstMeta().

gst_buffer_add_video_time_code_meta ()

For more you can refer decklinkvideosrc code.
https://github.com/GStreamer/gst-plugins-bad/blob/master/sys/decklink/gstdecklinkvideosrc.cpp

Where is the time data actually stored for an H.264 video?

-aps

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Embedding GPS and timestamp tags on a per frame basis

Vinod Kesti
H.264 Elementary stream do not have time stamp.

Muxers have Video PTS and DTS.



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel