Need help - Closed Caption injection from external app into h264 stream
I would like to know if and how it's possible to inject closed caption into
a h264 stream?
Is it possible to use appsrc for it together with eg
ccextractor/ccconverter/cccombiner or do I need to write own plugin/element
goal: we have an external voice recognition app which converts speech to
text. We would like to inject this text in to a stream.
At current point I tried multiple things but none of them gives any results
and now I wonder if it's even possible what I'm trying to archive with
current existing elements and/or API's!?
Any help, point to right direction will be very much appreciated.
things I've tried:
•using pipeline to generate video: videotestsrc is-live=1 ! videoconvert !
videorate ! videoscale !
x264enc ! qtmux ! filesink location="test_cc.mp4"
adding buffer pad probe to capsFilter 'sink', then adding VideoCaptionMeta
on buffer() with some sample text data in a callback
thereafter it is pushed to eg appsrc ! ccextractor ! ccconverter !
cccombiner ! fakesink (tried to use different caps on appsrc)
ccextractor does not create 'caption' pad an/or it is not connected to
• trying to play mpeg and mov files with embedded cc. Later I red somewhere
that it is not supported in Gstreamer decodebin/ gst-play-1.0 jet
• only one thing that was differen is an output file.mp4 with
VideoCaptionMeta which was created by appsrc ! ccextractor ! cccombiner !
... ! x264enc ! qtmux ! filesink location=file.mp4
This one had additional CC track when playing or inspecting in VLC, but
without any visible CC data.