shaka-project / shaka-packager

A media packaging and development framework for VOD and Live DASH and HLS applications, supporting Common Encryption for Widevine and other DRM Systems.
https://shaka-project.github.io/shaka-packager/
Other
2.01k stars 511 forks source link

ttml from teletext and scte35 #272

Closed kuznetcoff777 closed 9 months ago

kuznetcoff777 commented 7 years ago

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 https://github.com/google/shaka-packager/issues/23, so i suppose there is must be ttml support, but did not find how to do it from udp signal.
kuznetcoff777 commented 7 years ago

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 commented 7 years ago

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 commented 7 years ago

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

kqyang commented 7 years ago

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

kuznetcoff777 commented 7 years ago

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 commented 7 years ago

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 commented 7 years ago

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

kqyang commented 7 years ago

Cool. Thanks!

vaage commented 6 years ago

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

kqyang commented 6 years ago

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

ghost commented 6 years ago

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

kqyang commented 6 years ago

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

TheModMaker commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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

Nixon197 commented 2 years ago

Hi

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

BR

ghyzo commented 2 years ago

Hi,

I am not sure what you mean. Can you give me some more information, because I didn't do it recently, if not explained below. What I made recently, 5G and higher( don't abuse it, because I am BramG.,) is not a result of implementation of Teletext subtitels. What I 've made is a shared folder shared with everyone at \GHYSBRAMPC\fr frtl It seems empty but contains a copy of the 3G driver made by me in the past.

Sincerely,

Bram Ghys

Outlook voor Androidhttps://aka.ms/AAb9ysg downloaden


From: Nixon197 @.> Sent: Wednesday, December 15, 2021 8:54:19 AM To: google/shaka-packager @.> Cc: Subscribed @.***> Subject: Re: [google/shaka-packager] ttml from teletext and scte35 (#272)

Hi

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

BR

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/google/shaka-packager/issues/272#issuecomment-994463440, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAQK66FBGFNYPXYYOV5GU4DURBCSXANCNFSM4D3WXPSA. Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

tobbee commented 1 year ago

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

Further things that could be implemented are

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?