All Projects → dusterio → Hlsinjector

dusterio / Hlsinjector

ID3 metadata injector for MPEG TS (HLS) written in PHP

Projects that are alternatives of or similar to Hlsinjector

Mediaelement
HTML5 <audio> or <video> player with support for MP4, WebM, and MP3 as well as HLS, Dash, YouTube, Facebook, SoundCloud and others with a common HTML5 MediaElement API, enabling a consistent UI in all browsers.
Stars: ✭ 7,767 (+13769.64%)
Mutual labels:  hls
Hls Trimming Frame Accuracy
JS Code that given a group of HLS chunks, a start timestamp, and end timestamp it creates one MP4 that contains the original V/A frame accuracy trimmed and perfectly aligned
Stars: ✭ 46 (-17.86%)
Mutual labels:  hls
Geoportal Server Catalog
Geoportal Server next generation search application and metadata catalog, based on elasticsearch.
Stars: ✭ 53 (-5.36%)
Mutual labels:  metadata
Yoast Seo For Typo3
Yoast SEO plugin for TYPO3
Stars: ✭ 43 (-23.21%)
Mutual labels:  metadata
Traileraddict.bundle
Stars: ✭ 44 (-21.43%)
Mutual labels:  metadata
Sqlservermetadata
SQL Server Metadata Toolkit
Stars: ✭ 47 (-16.07%)
Mutual labels:  metadata
Rust Metaflac
A rust library for reading and writing FLAC metadata.
Stars: ✭ 41 (-26.79%)
Mutual labels:  metadata
Uc Guidelines
To improve the clarity and usefulness of finding aids and to promote consistency across campuses, a working group of digital archivists under the aegis of the UC Born-Digital Content Common Knowledge Group (CKG) have collaborated to develop a UC-wide descriptive standard for born-digital archival material.
Stars: ✭ 54 (-3.57%)
Mutual labels:  metadata
Labelled
Manipulating labelled vectors in R
Stars: ✭ 45 (-19.64%)
Mutual labels:  metadata
M3u8
Python m3u8 Parser for HTTP Live Streaming (HLS) Transmissions
Stars: ✭ 1,064 (+1800%)
Mutual labels:  hls
Schemacrawler
Free database schema discovery and comprehension tool
Stars: ✭ 1,021 (+1723.21%)
Mutual labels:  metadata
Manifest
Video Manifest Parsers and Generators, supporting multiple formats such as HLS and DASH
Stars: ✭ 44 (-21.43%)
Mutual labels:  hls
Node Media Server
Node.js Media Server / VOD / HLS / DRM
Stars: ✭ 49 (-12.5%)
Mutual labels:  hls
Osm Meta Util
Utility for downloading and processing OSM metadata
Stars: ✭ 42 (-25%)
Mutual labels:  metadata
Webxdownloader
Browser extension to download Webex meeting recordings
Stars: ✭ 52 (-7.14%)
Mutual labels:  hls
Go Ts Segmenter
Live TS segmenter and HLS manifest creation in Go
Stars: ✭ 42 (-25%)
Mutual labels:  hls
Free Hls Live
Free live streaming with Free-HLS (Free HLS 直播姬)
Stars: ✭ 47 (-16.07%)
Mutual labels:  hls
Wjplayer
Video.js bundle that supports HLS, VAST/VMAP, 360-degree videos, and more.
Stars: ✭ 55 (-1.79%)
Mutual labels:  hls
Framework
IONDV. Framework is a high level framework for enterprise web applications development.
Stars: ✭ 54 (-3.57%)
Mutual labels:  metadata
Onedata
Onedata is a distributed data management platform providing eventually consistent, POSIX-compliant virtual filesystem.
Stars: ✭ 49 (-12.5%)
Mutual labels:  metadata

hlsinjector

ID3 metadata injector for MPEG TS (HLS) written in PHP

I couldn't find any tool online that could add (inject) ID3 timed metadata into a HLS (basically MPEG TS) stream. There are Apple tools but they only run under MAC OS and, it appears, they got bugs.

Here you are – not a code worth programming competition, but it's working and it's going to save you hours of googling.

How to use this

You must have PHP CLI installed. Thankfully, it's totally cross-platform and free. Once you have it installed, just run:

`HLS Injector by Denis Mysenko Syntax: ./injector.php -i filename -m mode [-o filename] [-d]

	-i filename	    input file (MPEG TS format)
	-m mode		    choose 'analyze' or 'inject'
	-o filename	    output filename in case of 'inject' mode
    -e filename     with with timed metadata
    --metastart N   start CC for metadata stream from this number
	-d		        enable debug mode`

Work modes

You can run this tool in either analyze or injection mode. Analyze mode allows to verify compliance of your streams with the standards. It will check all headers, continuity counters, CRC checksums, etc. If you use analyze mode with debug key – you will see all important internals of the TS, including PAT and PMT tables.

Injection mode allows you to insert ID3 metadata into existing MPEG TS file (stream). Based on metadata file (see below) this tool will add extra frames at specific points of your original TS. Moreover, PMT of your main program will be modified – we will add extra descriptors and one extra elementary stream/PID for metadata. By default, it will be assigned a number next after your highest existing PID (eg. if your TS file's last PID was 0x102, metadata stream will be on PID 0x103).

Format of metadata

To be compatible with Apple tools (which are not that popular, though), I decided to keep the same format. Metadata file is a plain text file with the following format:

<Moment> <format> <filename | tag>

Where is the time point in seconds when the piece of metadata should be shown, is either "id3" or "plaintext". In case of "id3", a filename of the ID3 file must follow. If case of "plaintext", a plain text ID3 title should follow (will be inserted as TPE1 title).

One line for each ID3 file or moment. Lines don't have to be sorted chronologically.

Demo

You can see it in action on Rapport – this is where I needed it, actually.

License

Use it however you wish.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].