Query related to Closed Captioning Support in Gstreamer

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

Query related to Closed Captioning Support in Gstreamer

TusharK
Hi,

Can you please help me with details on below queries related to closed
captioning support in gstreamer

1) Can we stream “Closed Captioned” text separately as separate channel like
audio and video?
2) Which streaming protocol (RTMP/RTSP/WebRTC etc.) support streaming of
“Closed Caption” text? Any recommendation would be really helpful
3) Came across closed caption support in H264/H265 parser and encoder, this
is getting added as SEI Registered User Data. Can we use this feature to
stream the Closed Captioning information. At client / player side we are
planning to use gstreamer pipeline itself for decoding. Hope that this
closed caption data can be extracted and rendered properly. Is this
understanding correct?
4) If we use WebRTC for streaming (H264 + closed captioning data inserted as
SEI data) then will browser able to decode this closed captioning data and
render it on HTML page canvas. Is this understanding correct?
5) It would be great if you could share the example gstreamer pipelines
which demonstrates streaming and playback of closed captioned video? I gone
through some gstreamer forum posts but could not find the reference pipeline
along with the stream to be used.

Thanks,
Tushar



--
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: Query related to Closed Captioning Support in Gstreamer

Andy Robinson
On 07/01/2021 17:40, TusharK wrote:
> 5) It would be great if you could share the example gstreamer pipelines
> which demonstrates streaming and playback of closed captioned video? I gone
> through some gstreamer forum posts but could not find the reference pipeline
> along with the stream to be used.

Here is a pipeline which displays video with subtitles:

gst-launch-1.0 \
  textoverlay name=ov ! autovideosink \
  filesrc location=video.mp4 ! decodebin ! videoconvert ! videoscale !
ov.video_sink \
  filesrc location=subtitles.srt ! subparse ! ov.text_sink

Regards,
Andy Robinson, Seventh String Software, www.seventhstring.com
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Query related to Closed Captioning Support in Gstreamer

Mathieu Duponchelle
In reply to this post by TusharK
Hey,

On 1/7/21 6:40 PM, TusharK wrote:
> Hi,
>
> Can you please help me with details on below queries related to closed
> captioning support in gstreamer
>
> 1) Can we stream “Closed Captioned” text separately as separate channel like
> audio and video?

You can extract closed captions with ccextractor yes.
> 2) Which streaming protocol (RTMP/RTSP/WebRTC etc.) support streaming of
> “Closed Caption” text? Any recommendation would be really helpful

I'm not aware of any streaming protocol that allows transport of
closed captions separately, but perhaps there is one I'm not aware of.

> 3) Came across closed caption support in H264/H265 parser and encoder, this
> is getting added as SEI Registered User Data. Can we use this feature to
> stream the Closed Captioning information. At client / player side we are
> planning to use gstreamer pipeline itself for decoding. Hope that this
> closed caption data can be extracted and rendered properly. Is this
> understanding correct?

Yes, if you inject closed captions in the H264 bitstream GStreamer can
extract it on the other end.

> 4) If we use WebRTC for streaming (H264 + closed captioning data inserted as
> SEI data) then will browser able to decode this closed captioning data and
> render it on HTML page canvas. Is this understanding correct?

Well, you will need the decoder / parser used on the browser side to support
extracting that information, and you will need a player capable of interpreting
and displaying it, but technically yes, the browser will have the information
available.

> 5) It would be great if you could share the example gstreamer pipelines
> which demonstrates streaming and playback of closed captioned video? I gone
> through some gstreamer forum posts but could not find the reference pipeline
> along with the stream to be used.

We should probably add some index page to our documentation that
sums up our closed caption capabilities yes, for now I would advise
reading the documentation of the various closedcaption elements
at <https://gstreamer.freedesktop.org/documentation/closedcaption/index.html?gi-language=c#plugin-closedcaption>

You should also know that we have a bunch more closed caption
elements in our rust plugins, but those don't have documentation
exposed, we haven't figured out how we want to set up our infrastructure
for that yet. Your best option will be to look at the sources:

https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/tree/master/video/closedcaption/src

Apart from that, it would be nice to improve autoplugging for CC,
eg cea608overlay should be autopluggable when playbin detects
a 608 stream, this will require some effort though :)

Cheers,

--
Mathieu Duponchelle · https://www.centricular.com <https://www.centricular.com>
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Query related to Closed Captioning Support in Gstreamer

TusharK
In reply to this post by Andy Robinson
Thanks Andy for sharing the pipeline.
I wanted to use cc708overlay and ccextractor in the pipeline, tried below
pipeline.

gst-launch-1.0 filesrc location = input.mp4 ! decodebin ! ccextractor name=e
e.src ! o.video_sink \
   e.caption ! o.cc_sink \
   cc708overlay name=o ! videoconvert ! autovideosink -e -v

But I could not see closed caption drawn on video frame which get rendered.
It would be great if you could point me to reference stream with cea708?

Thanks,
Tushar



--
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: Query related to Closed Captioning Support in Gstreamer

TusharK
In reply to this post by Mathieu Duponchelle
Thanks Mathieu for sharing the details.

We are mainly particularly looking for CEA708 CC streaming support using
RTSP/RTMP/WebRTC.
As per my understanding, closed caption is getting added into H264 encoded
bit-stream using SEI Registered User Data, so this information will be
available at client / player side (browser / standalone players like VLC
etc.), and  I hope we do not have to make changes to overlay closed
captioning.

Can I assume that the handling of closed caption cea708 (insertion and
extraction) is generic implementation added into gstreamer and most of the
players/browsers will support extraction of closed caption CEA708 data and
render text on the video frame?

Thanks,
Tushar



--
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: Query related to Closed Captioning Support in Gstreamer

Mathieu Duponchelle
In reply to this post by TusharK
What is the format of the extracted closed captions? You may need to
use cea608overlay / ccconverter here.

--
Mathieu Duponchelle · https://www.centricular.com <https://www.centricular.com>


On 1/11/21 6:14 AM, TusharK wrote:

> Thanks Andy for sharing the pipeline.
> I wanted to use cc708overlay and ccextractor in the pipeline, tried below
> pipeline.
>
> gst-launch-1.0 filesrc location = input.mp4 ! decodebin ! ccextractor name=e
> e.src ! o.video_sink \
>    e.caption ! o.cc_sink \
>    cc708overlay name=o ! videoconvert ! autovideosink -e -v
>
> But I could not see closed caption drawn on video frame which get rendered.
> It would be great if you could point me to reference stream with cea708?
>
> Thanks,
> Tushar
>
>
>
> --
> Sent from: http://gstreamer-devel.966125.n4.nabble.com/
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Query related to Closed Captioning Support in Gstreamer

Mathieu Duponchelle
In reply to this post by TusharK
I don't know if you can assume browser-side players will know how to
extract / render that, you will need to try / research :)

--
Mathieu Duponchelle · https://www.centricular.com <https://www.centricular.com>

On 1/11/21 6:25 AM, TusharK wrote:
> Can I assume that the handling of closed caption cea708 (insertion and
> extraction) is generic implementation added into gstreamer and most of the
> players/browsers will support extraction of closed caption CEA708 data and
> render text on the video frame?
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel