CasparCG / server

CasparCG Server is a Windows and Linux software used to play out professional graphics, audio and video to multiple outputs. It has been in 24/7 broadcast production since 2006. Ready-to-use downloads are available under the Releases tab https://casparcg.com.
GNU General Public License v3.0
890 stars 271 forks source link

MPEG-TS EPG for the ffmpeg consumer #895

Open wifinityes opened 6 years ago

wifinityes commented 6 years ago

Actually we are using the ffmpeg consumer for our channels output. We setting the UDP/RTP mpegts container, and we are using Opencaster epg binary in order to integrate an EPG info into the MEPG-TS ffmpeg output stream.

This EPG feature will be very usefully integrated directly in Casparcg getting the info from a m3u url for example.

I can help for betatesting if anybody thinks this feature could be interesting.

premultiply commented 6 years ago

There is no support for EIT table generation in FFMPEG at all afaik. This is a task for EPG systems and DVB multiplexers like Opencaster, Dektec Muxxpert, ... And it is very sophisticated to do it right with correct character encodings, timing etc.

wifinityes commented 6 years ago

I know, but I'd like to try to modify the ffmpeg in order to integrate it using the opencaster epg source code as starting point.

TomKaltz commented 6 years ago

@wifinityes can you do this integration? We would love a pull request!

wifinityes commented 6 years ago

Maybe my C knowledge are too basic for this new request, but I can try it.

maceyldn commented 6 years ago

This sounds up my street.. Can you outline in more detail how you see it would work?

wifinityes commented 6 years ago

The idea will be add a new ffmpeg consumer parameter for setting an uri with the XML EPG file with the standard:

tv generator-info-name="casparcg-epg"> channel id="test1"> display-name>CHANNEL NAME</display-name /channel> programme channel="test1" start="20180215061800 +0100" stop="20180215070000 +0100"> title lang="spa">SHADES OF BLUE (T2) category lang="spa">Movie/Drama /programme> programme channel="test1" start="20180215070000 +0100" stop="20180215074300 +0100"> title lang="spa">AQUARIUS (T2) category lang="spa">Movie/Drama /programme> programme channel="test1" start="20180215074300 +0100" stop="20180215082400 +0100"> title lang="spa">LIFE (T2) category lang="spa">Movie/Drama /programme> programme channel="test1" start="20180215094700 +0100" stop="20180215103100 +0100"> title lang="spa">LEY Y ORDEN: UVE (T2) category lang="spa">Movie/Drama /programme> /tv>

With this info, we can prepare and add the tdt and eit tables in ffmpeg code using the "tstdt opencaster source code" as base.

That is the main idea.