Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ttml from teletext and scte35 #272

Closed
kuznetcoff777 opened this issue Sep 20, 2017 · 18 comments · Fixed by #1344
Closed

ttml from teletext and scte35 #272

kuznetcoff777 opened this issue Sep 20, 2017 · 18 comments · Fixed by #1344
Labels
status: archived Archived and locked; will not be updated type: enhancement New feature or request

Comments

@kuznetcoff777
Copy link

kuznetcoff777 commented Sep 20, 2017

System info

Operating System: <e.g. macOS Sierra, Ubuntu 14.04 trusty etc>centos7
Shaka Packager Version: <e.g. v1.6.1, commit SHA etc>9c861d0-release

Issue and steps to reproduce the problem

Packager Command:
packager 'input=udp://233.1.1.1:20001?interface=172.17.0.2,stream=audio,init_segment=live-audio-init.mp4,segment_template=live-audio-$Number$.mp4,bandwidth=96000' 'input=udp://233.1.1.1:20001?interface=172.17.0.2,stream=video,init_segment=live-video-ld-init.mp4,segment_template=live-video-ld-$Number$.mp4,bandwidth=350000' 'input=udp://233.1.1.1:20002?interface=172.17.0.2,stream=video,init_segment=live-video-sd-init.mp4,segment_template=live-video-sd-$Number$.mp4,bandwidth=650000' 'input=udp://233.1.1.1:20003?interface=172.17.0.2,stream=video,init_segment=live-video-hd-init.mp4,segment_template=live-video-hd-$Number$.mp4,bandwidth=950000' --min_buffer_time 10 --minimum_update_period 10 --time_shift_buffer_depth 1200 --suggested_presentation_delay 20 --mpd_output live.mpd

Extra steps to reproduce the problem?
(1)
(2)

What is the expected result?

What happens instead?

<Please attach the input files or email to shaka-packager-issues@google.com.>

Just want to know if there is teletext and scte35 in udp mcast, if it is possible to get ttml/stpp (subtitle) on output and scte35 markers in mpd file? I found this issue #23, so i suppose there is must be ttml support, but did not find how to do it from udp signal.

@kuznetcoff777
Copy link
Author

Found in 1.3.0 version:
"Added Subtitle support for On-Demand: allowing subtitle inputs in webvtt or ttml. Support for subtitle inputs in media files will be added later."

So i suppose there is no support for live udp teteltext -> dash ttml. And also i found nothing about scte35 markers. So i suppose all i listed is not supported, am i right? If so, are you going to make support for this and if yes, then when?

@kqyang
Copy link
Collaborator

kqyang commented Sep 20, 2017

That is not on our road map right now. We don't have much knowledge on how text/subtitle is carried in a udp mcast stream. We will probably need some help here. If you have any documentations on teletext/subtitle or sample contents, we'll be happy to look into it some time.

@kuznetcoff777
Copy link
Author

I suppose i can provide sample ts file soon.
What about scte35?

@kqyang
Copy link
Collaborator

kqyang commented Sep 21, 2017

We are looking into scte35. I hope it can be supported in Q4 or Q1 2018, but no guarantees right now.

@kuznetcoff777
Copy link
Author

How this guys do scte35, some script inserts scte in mpd? (in mpd there is noticed v1.5.1-c540e5a-release)

https://ctc-live.webcaster.pro/dash/live.mpd

Here is example of scte35:

<?xml version="1.0" encoding="UTF-8"?>
<!--Generated with https://github.com/google/shaka-packager version v1.5.1-c540e5a-release-->
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd" xmlns:cenc="urn:mpeg:cenc:2013" xmlns:scte35="urn:scte:scte35:2014:xml" minBufferTime="PT2S" type="dynamic" profiles="urn:mpeg:dash:profile:isoff-live:2011" publishTime="2017-09-22T06:42:43Z" availabilityStartTime="2017-09-20T20:19:56Z" minimumUpdatePeriod="PT2S" timeShiftBufferDepth="PT36S">
  <BaseURL>https://ctc.megacdn.ru/ctc/</BaseURL>
  <Period id="0" start="PT0S">
    <EventStream schemeIdUri="urn:scte:scte35:2014:xml" timescale="90000">
      <Event id="225" presentationTime="11137346943" duration="5400000">
        <scte35:SpliceInfoSection scte35:ptsAdjustment="0" scte35:protocolVersion="0" scte35:tier="4095">
          <scte35:SpliceInsert scte35:spliceEventId="1073742793" scte35:spliceEventCancelIndicator="false" scte35:outOfNetworkIndicator="true" scte35:uniqueProgramId="1" scte35:availNum="8" scte35:availsExpected="255">
            <scte35:Program>
              <scte35:SpliceTime scte35:ptsTime="2547412351"/>
            </scte35:Program>
            <BreakDuration scte35:autoReturn="false" scte35:duration="5400000"/>
          </scte35:SpliceInsert>
          <scte35:AcatilDescriptor scte35:ProviderAvailId="8"/>
        </scte35:SpliceInfoSection>
      </Event>
    </EventStream>
    <AdaptationSet id="0" contentType="audio" segmentAlignment="true">
      <Representation id="0" bandwidth="133664" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
        <ContentProtection value="cenc" schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="1ac5d70b-b9d8-5d4b-86e2-d6f248a63301"/>
        <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
          <cenc:pssh>AAAAfHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAFwSEJZFCOgj9ly4lYkfEtXnMXISECOwW3Ovb1RVu7OAYZpwoe8SEBrF1wu52F1LhuLW8kimMwEaEWludmVudG9zd2ViY2FzdGVyIgtjaGFubmVsX2N0Y0jj3JWbBg==</cenc:pssh>
        </ContentProtection>
        <SegmentTemplate timescale="90000" initialization="audio/a_b128000/1505961935_live-audio.mp4?cachetype=live" media="audio/a_b128000/1505961935_live-audio-$Number$.mp4?cachetype=live" startNumber="25038">
          <SegmentTimeline>
            <S t="11136749877" d="361523"/>
            <S t="11137111412" d="361522"/>
            <S t="11137472946" d="361521"/>
            <S t="11137834481" d="361522"/>
            <S t="11138196016" d="361521"/>
            <S t="11138557550" d="361523"/>
            <S t="11138919085" d="361522"/>
            <S t="11139280620" d="361522"/>
            <S t="11139642155" d="361521"/>
            <S t="11140003689" d="361523"/>
          </SegmentTimeline>
        </SegmentTemplate>
      </Representation>
    </AdaptationSet>
    <AdaptationSet id="1" contentType="video" maxWidth="1024" maxHeight="740" frameRate="90000/3600">
      <Representation id="1" bandwidth="751191" codecs="avc1.4d001e" mimeType="video/mp4" sar="1:1" width="640" height="462">
        <ContentProtection value="cenc" schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="964508e8-23f6-5cb8-9589-1f12d5e73172"/>
        <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
          <cenc:pssh>AAAAfHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAFwSEJZFCOgj9ly4lYkfEtXnMXISECOwW3Ovb1RVu7OAYZpwoe8SEBrF1wu52F1LhuLW8kimMwEaEWludmVudG9zd2ViY2FzdGVyIgtjaGFubmVsX2N0Y0jj3JWbBg==</cenc:pssh>
        </ContentProtection>
        <SegmentTemplate timescale="90000" initialization="video/v_360p/1505961935_live-video.mp4?cachetype=live" media="video/v_360p/1505961935_live-video-$Number$.mp4?cachetype=live" startNumber="25147">
          <SegmentTimeline>
            <S t="11136853743" d="360000" r="9"/>
          </SegmentTimeline>
        </SegmentTemplate>
      </Representation>
      <Representation id="2" bandwidth="401953" codecs="avc1.42001e" mimeType="video/mp4" sar="1:1" width="416" height="308">
        <ContentProtection value="cenc" schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="964508e8-23f6-5cb8-9589-1f12d5e73172"/>
        <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
          <cenc:pssh>AAAAfHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAFwSEJZFCOgj9ly4lYkfEtXnMXISECOwW3Ovb1RVu7OAYZpwoe8SEBrF1wu52F1LhuLW8kimMwEaEWludmVudG9zd2ViY2FzdGVyIgtjaGFubmVsX2N0Y0jj3JWbBg==</cenc:pssh>
        </ContentProtection>
        <SegmentTemplate timescale="90000" initialization="video/v_240p/1505961935_live-video.mp4?cachetype=live" media="video/v_240p/1505961935_live-video-$Number$.mp4?cachetype=live" startNumber="25146">
          <SegmentTimeline>
            <S t="11136853743" d="360000" r="9"/>
          </SegmentTimeline>
        </SegmentTemplate>
      </Representation>
      <Representation id="3" bandwidth="1499506" codecs="avc1.4d001f" mimeType="video/mp4" sar="1:1" width="1024" height="740">
        <ContentProtection value="cenc" schemeIdUri="urn:mpeg:dash:mp4protection:2011" cenc:default_KID="23b05b73-af6f-5455-bbb3-80619a70a1ef"/>
        <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
          <cenc:pssh>AAAAfHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAFwSEJZFCOgj9ly4lYkfEtXnMXISECOwW3Ovb1RVu7OAYZpwoe8SEBrF1wu52F1LhuLW8kimMwEaEWludmVudG9zd2ViY2FzdGVyIgtjaGFubmVsX2N0Y0jj3JWbBg==</cenc:pssh>
        </ContentProtection>
        <SegmentTemplate timescale="90000" initialization="video/v_576p/1505961935_live-video.mp4?cachetype=live" media="video/v_576p/1505961935_live-video-$Number$.mp4?cachetype=live" startNumber="25145">
          <SegmentTimeline>
            <S t="11136853743" d="360000" r="9"/>
          </SegmentTimeline>
        </SegmentTemplate>
      </Representation>
    </AdaptationSet>
  </Period>
</MPD>



@kqyang
Copy link
Collaborator

kqyang commented Sep 22, 2017

I have no idea. Looks like it is inserted by an external script. I hope they can tell us how they did it. We welcome contributions!

@kuznetcoff777
Copy link
Author

Sent to gmail links for files with scte35 markers and subtitles.

@kqyang
Copy link
Collaborator

kqyang commented Sep 25, 2017

Cool. Thanks!

@vaage
Copy link
Contributor

vaage commented Mar 2, 2018

@kuznetcoff777 @kqyang , is this still an active issue?

@vaage vaage added the status: waiting on response Waiting on a response from the reporter(s) of the issue label Mar 2, 2018
@kqyang
Copy link
Collaborator

kqyang commented Mar 2, 2018

Yes, we should look into it next quarter. Added it to backlog for now.

@kqyang kqyang added this to the Backlog milestone Mar 2, 2018
@kqyang kqyang added type: enhancement New feature or request and removed Needs Triage status: waiting on response Waiting on a response from the reporter(s) of the issue labels Mar 2, 2018
@ghost
Copy link

ghost commented Mar 23, 2018

just curious about this. When it's ready ? Thanks,
Tam

@kqyang
Copy link
Collaborator

kqyang commented Mar 23, 2018

@delgemoon I hope we'll have some time next quarter to work on it if not later.

@TheModMaker
Copy link
Contributor

A quick update, we haven't made much/any progress on working on this, but #832 is nearly done and much of the content using DVB is using DVB-SUB and will be supported in #832. We also already support TTML output (not input), which will help with this issue. Also, the SCTE-35 part will be tracked in #352 instead, this will track just handling teletext subtitles.

To whoever implements this, I think the teletext spec is ETS 300 706 and will be wrapped in MP2TS by ETSI EN 301 775. There is a small sample asset at https://trac.ffmpeg.org/ticket/5067.

@Canta
Copy link
Contributor

Canta commented Jan 27, 2021

Careful, as there seems to be different "teletext" specs.

One of them is the one linked before, ETS 300 706.
The other one, which seems to be the one implemented in ffmpeg, is ETS 300 472, known as "dvb teletext".

@aleek
Copy link

aleek commented Feb 18, 2021

@Canta ETS 300 472 specyfies carriage of ETS 300 706 packets in dvb PES packets.

@Nixon197
Copy link

Hi

did you make any progress in the implementation of Teletext subtitles?

BR

@ghyzo
Copy link

ghyzo commented Dec 16, 2021 via email

@tobbee
Copy link
Contributor

tobbee commented Jan 24, 2023

Hi all and an extra ping to @joeyparrish,

Eyevinn Technology, together with CIRES21, is working on an implementation of EBU teletext in MPEG-2 input for Shaka-packager, following the ETSI specifications (ETSI 300 706, 300 468 and 300 472).

The main specification 300 706 has different levels and complexities, so as a first step we intend to implement Level 1 with

  • text extraction with timing, new-lines and character set for standard latin and Portuguese/Spanish national symbols
  • specification of what teletext page to extract using the cc_index configuration

Further things that could be implemented are

  • distinction between captions and subtitles
  • row numbers (1-24)
  • alignment heuristics
  • more character sets
  • colors and other styling
  • more configuration parameters if needed

Extraction from MPEG-2 TS input is similar to what is done for DVB subtitles, and we aim to reuse the current text output options. We think that we are on a good track, but if there are special aspects to take into considerations, it would be good to learn about them?

joeyparrish pushed a commit that referenced this issue Feb 23, 2024
Replaces #1181

* Add support for EBU Teletext input following Level 1.5 of the core
specification ETSI EN 300 706 V1.2.1 (2003-04).
* Add support for webvtt in MP4 segments output.

Closes #272

---------

Co-authored-by: Marcus Spangenberg <marcus.spangenberg@eyevinn.se>
@github-actions github-actions bot added the status: archived Archived and locked; will not be updated label Apr 24, 2024
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Apr 24, 2024
@cosmin cosmin removed this from the Backlog milestone May 12, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
status: archived Archived and locked; will not be updated type: enhancement New feature or request
10 participants