Skip to content

superkabuki/scte35

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

threefive

image

threefive continued. SCTE-35 for the People.

Now with Super Advanced Error Detection and Stuff.

  • Does not generate Fatal errors, it won't break your process.
  • Displays what is in error and how to correct it.
  • Works in the cli
  • Works in code. image

image

Install

  • python3 via pip
python3 -mpip install threefive3
  • pypy3
pypy3 -mpip install threefive3
  • from the git repo
git clone https://github.com/superkabuki/scte35.git
cd scte35
make install

The Cli tool

The cli audetects data being available on stdin and that allows it to autodetect the SCTE-35 format as well as MPEGTS steams. Now every SCTE-35 data format, except hls, is autodetected on the commandline, as well as stdin.HLS requires the hls ketyword.

The cli tool installs automatically with pip or the Makefile.

Inputs

  • the cli can decode SCTE-35 from

  • Base64

  • Hex,

  • HLS,

  • JSON,

  • Xml,

  • Xml+Bin

  • MPEGTS Streams

  • Most inputs are auto-detected.

  • stdin is auto selected and auto detected.

  • SCTE-35 data is printed to stderr

  • stdout is used when piping video

Base64

  • parse SCTE-35 encoded in Base64
threefive3 '/DAsAAAAAyiYAP/wCgUAAAABf1+ZmQEBABECD0NVRUkAAAAAf4ABADUAAC2XQZU='

Hex

  • parse SCTE-35 encoded in Hex
threefive3 0xfc302c00000003289800fff00a05000000017f5f999901010011020f43554549000000007f8001003500002d974195

HLS

  • parse SCTE-35 from HLS manifests and segments
threefive3 hls https://example.com/master.m3u8

Json

cat json.json | threefive3

Xml

  • you can make a xml.xml file like this:
    • redirect 2 (stderr) to the file
./threefive3  '/DAsAAAAAyiYAP/wCgUAAAABf1+ZmQEBABECD0NVRUkAAAAAf4ABADUAAC2XQZU=' xml 2> xml.xml
  • pass in
threefive3  < xml.xml

Xmlbin

threefive3 < xmlbin.xml

Outputs

json

threefive3 '/DAsAAAAAyiYAP/wCgUAAAABf1+ZmQEBABECD0NVRUkAAAAAf4ABADUAAC2XQZU='

base64

threefive3 '/DAsAAAAAyiYAP/wCgUAAAABf1+ZmQEBABECD0NVRUkAAAAAf4ABADUAAC2XQZU=' base64

bytes

threefive3 '/DAsAAAAAyiYAP/wCgUAAAABf1+ZmQEBABECD0NVRUkAAAAAf4ABADUAAC2XQZU=' bytes

hex

threefive3 '/DAsAAAAAyiYAP/wCgUAAAABf1+ZmQEBABECD0NVRUkAAAAAf4ABADUAAC2XQZU=' hex

int

threefive3 '/DAsAAAAAyiYAP/wCgUAAAABf1+ZmQEBABECD0NVRUkAAAAAf4ABADUAAC2XQZU=' int

xml

threefive3 '/DAsAAAAAyiYAP/wCgUAAAABf1+ZmQEBABECD0NVRUkAAAAAf4ABADUAAC2XQZU=' xml

xml+bin

threefive3 '/DAsAAAAAyiYAP/wCgUAAAABf1+ZmQEBABECD0NVRUkAAAAAf4ABADUAAC2XQZU=' xmlbin

Streams

File and Network Protocols

File

threefive3 video.ts

Http(s)

threefive3 https://example.com/master.m3u8

Multicast

threefive3 udp://@235.35.3.5:9999

stdin

cat video.ts | threefive3

Udp Unicast

threefive3 udp://10.0.0.7:5555

hls

  • parse hls manifests and segments for SCTE-35
threefive3 hls https://example.com/master.m3u8

Iframes

  • Show iframes PTS in an MPEGTS video
threefive3 iframes https://example.com/video.ts

packets

  • Print raw SCTE-35 packets from multicast mpegts video
threefive3 packets udp://@235.35.3.5:3535

proxy

  • Parse a https stream and write raw video to stdout
threefive3 proxy video.ts

pts

  • Print PTS from mpegts video
 threefive3 pts video.ts

sidecar

  • Parse a stream, write pts,write SCTE-35 Cues to sidecar.txt
  threefive3 sidecar video.ts

sixfix

  • Fix SCTE-35 data mangled by ffmpeg
 threefive3 sixfix video.ts

show

  • Probe mpegts video ( kind of like ffprobe )
 threefive3 show video.ts

version

  • Show version
 threefive3 version

help

  • Help
 threefive3 help

image image