[FFmpeg-trac] #3356(undetermined:new): feature request: Segment HLS streams on SCTE 35 markers
FFmpeg
trac at avcodec.org
Mon Jan 27 21:49:11 CET 2014
#3356: feature request: Segment HLS streams on SCTE 35 markers
-------------------------------------+-------------------------------------
Reporter: adamscybot | Owner:
Type: enhancement | Status: new
Priority: wish | Component:
Version: git-master | undetermined
Keywords: hls | Resolution:
Blocking: | Blocked By:
Analyzed by developer: 0 | Reproduced by developer: 0
-------------------------------------+-------------------------------------
Comment (by adamscybot):
Replying to [comment:4 cehoyos]:
> Replying to [comment:3 adamscybot]:
> > Replying to [comment:2 cehoyos]:
> > > Replying to [ticket:3356 adamscybot]:
> > > > Many proprietary Apple HTTP live streaming or other HTTP streaming
encoders accept SCTE 35 markers in the input MPEG stream.
> > >
> > > Please provide such a sample.
> >
> > Would you like a sample of a TS stream including the markers
>
> Yes.
Also note that I may be willing to provide a bounty on this.
Here is a sample stream:
https://drive.google.com/file/d/0B4tWTxKbsp10SlUzV3ZIT25RbHc/edit?usp=sharing
SCTE 35 Cue Out occurs (out_of_network_indicator 1) at approx 75s for an
ad break of 242 seconds. If this feature were to be implemented, the chunk
would need to be split both when the cue out occurs and at the exact
duration offset after that (duration provided in the break_duration
structure within the message). This behaviour is accompanied by an
"auto_return 1" flag in the scte message. It is my understanding that some
encoders dont set the auto return flag and instead send a separate SCTE35
cue in (out_of_network_indicator 0) message at the end of a break.
As far as the comments in the HLS Manifest file are concerned -- there is
no set standard. Most solutions have something along the lines of:
{{{
chunk.ts
chunk.ts
#EXT-X-CUE-OUT:DURATION=255,scte35uuid
chunk.ts
chunk.ts
chunk.ts
#EXT-X-CUE-IN
chunk.ts
}}}
Also just for the hell of it, some example products: (datasheets aren't
too clear but if your CTRL+F "SCTE" or "ad insertion" it usually points it
out):
* http://www.allegrodvt.com/ftp/pdts/al2400/leafletal2400.pdf
* Page 20:
http://www.cisco.com/web/software/284413003/103021/CMEInstallationAndConfigureGuide2.1.pdf
*
http://www.cisco.com/en/US/prod/collateral/video/ps11488/ps11791/ps12141/data_sheet_c78-693484.html
*
http://www.elementaltechnologies.com/sites/default/files/partner_portal/Elemental_Ad_Insertion_Technical_Brief.pdf
(this one touches on how their software does manifest manipulation
downstream)
* http://www.envivio.com/en/solutions/applications/ad-insertion-blackout
/menu-id-200.html
* http://info.seawellnetworks.com/dynamic-manifest-manipulation
Some other products respond to SCTE 104 messages directly and then segment
without the SCTE 35 stage. However, these are probably out of scope of
ffmpeg as they are servers actively responding to the SCTE104 messages and
not reading data embedded in the mpeg stream. It does drive home still
though the need to frame accurately segment on some given boundary:
*
http://www.cisco.com/en/US/prod/collateral/video/ps11488/ps13253/ps13270/data_sheet_c78-728115.html
--
Ticket URL: <https://trac.ffmpeg.org/ticket/3356#comment:5>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list