Coder Social home page Coder Social logo

gfto / mptsd Goto Github PK

View Code? Open in Web Editor NEW
53.0 53.0 40.0 181 KB

mptsd receives mpegts streams from udp/multicast or http and combines them into one multiple program stream that is suitable for outputing to DVB-C modulator. It is tested with Dektec DTE-3114 Quad QAM Modulator and it is used in production in couple of small DVB-C networks.

Home Page: http://georgi.unixsol.org/programs/mptsd/

License: GNU General Public License v2.0

C 96.69% Shell 2.41% Makefile 0.90%

mptsd's People

Contributors

amdmi3 avatar freddy36 avatar gfto avatar gvangool avatar lars18th avatar ningpeng avatar nrmmota avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mptsd's Issues

[feature] - v option to print mptsd version (for automated bash script)

Hello @gfto and @lars18th,

Is it advantageous we add an option -v to print mptsd version? I added it to config.c however my addition in my build simply prints version 1.0.0.1. Currently when mptsd starts it prints some longish system info and build date?

I'd suggest a version.h and update it every build.

Version 1.1.0.1234 ?

release.major.minor.build

It'll be able to be managed moving forward to "track" later versions?

I added it to my build for the purpose of making my install script check mptsd is on the system looks at the version and if there is a later release? asks to upgrade to the later release.

Great work, I have it running on Ubuntu 23.10 no issues so far until I see what it can do..

BUG: Input PMT length > 1

Hi,

I detected this bug:

  • When the input PMT table has a size of 2 or more packets, then the input is continously reconnected.

Let me to print some logs after some internal changes in the input.c for printing PREVIOUS (s->last_pmt) and CURRENT (s->pmt) tables after the checking of:

mptsd/input.c

Line 187 in 7f84ca2

if (!ts_pat_is_same(s->pat, s->last_pat)) {

Jun 18 15:33:39 host ux-mptsd: INPUT : [input1      ] ========================PMT changed.======================== fd: 4 src: http://...
Jun 18 15:33:39 host ux-mptsd: INPUT : [input1      ] *** Last PMT *** fd: 4 src: http://...
Jun 18 15:33:39 host ux-mptsd: PMT table
Jun 18 15:33:39 host ux-mptsd: *** tei:0 pusi:1 prio:0 pid:0406 (1030) scramble:0 adapt:0 payload:1 adapt_len:0 adapt_flags:0 | pofs:4 plen:184
Jun 18 15:33:39 host ux-mptsd: *** tei:0 pusi:0 prio:0 pid:0406 (1030) scramble:0 adapt:0 payload:1 adapt_len:0 adapt_flags:0 | pofs:4 plen:184
Jun 18 15:33:39 host ux-mptsd:   * Section header
Jun 18 15:33:39 host ux-mptsd:     - Table id           : 002 (2) program_map_section
Jun 18 15:33:39 host ux-mptsd:     - Section length     : 10c (268) [num_packets:2]
...
Jun 18 15:33:39 host ux-mptsd: INPUT : [input1      ] *** Current PMT *** fd: 4 src: http://...
Jun 18 15:33:39 host ux-mptsd: PMT table
Jun 18 15:33:39 host ux-mptsd: *** tei:0 pusi:1 prio:0 pid:0406 (1030) scramble:0 adapt:0 payload:1 adapt_len:0 adapt_flags:0 | pofs:4 plen:184
Jun 18 15:33:39 host ux-mptsd:   * Section header
Jun 18 15:33:39 host ux-mptsd:     - Table id           : 002 (2) program_map_section
Jun 18 15:33:39 host ux-mptsd:     - Section length     : 10c (268) [num_packets:1]
...
Jun 18 15:33:39 host ux-mptsd: INPUT : [input1      ] Reconnect fd: 4 src: http://...

As you can see, the input is reconnected because the equal check fails. The reason for the fail is because the lenght of the s->last_pmt is correct (268 bytes, num_packets:2), but the lenght of s->pmt is inconsistent (269 bytes, but num_packets:1).

So, the code needs to be fixed!

epg from xmltv import option

hello sir,
first thanx to you for great great software for small network.
my request to you,
can you sopport for xmltv for epg?
i have xmltv file so can i use in mptsd-lcn?
or can i put xmltv link to epg option?
thnx dear.

LCN branch to master

Hi,

I see that the "lcn" branch has useable code for supporting LCN descriptors. Plus some other code of an UDP server.

I suggest the idea of extracting the LCN code and merge it with the "main" branch.
You agree?

epg pass through

hello sir,
first thnx for your great software.
can u make epg pass through?
means i get epg from stream then i use mpts its cant pass-through.
thnx.

Issues with "-B" != 38

Hi,

When using the parameter "-B" for streaming with different bandwith than the default one (38Mbps), after some time of starting the execution I see error messages and the output stream corrupts:

Jun 15 00:39:18 host ux-mptsd: INPUT : [ch1         ] Disable input, buffer is full. fd: 4 src: udp://239.0.0.1:12345

I feel the INPUT buffer goes full because some timing in the code doesn't work for less than the stock 38Mbps. Any idea about how to fix it?

Thank you!

Update submodules

Hi,

The current "master" Branch uses quite old versions of submodules (three years ago!).
You can see the used versions:

libfuncs @ 0dc8d87
libtsfuncs @ 45e7e99

And the command git submodule update doesn't update the code of the submodules.
Check it at https://gist.github.com/gitaarik/8735255.

So, I suggest to update the submodules to a recent commit.
And futhermore, add to the README how to update the submodules to last versions with the command git submodule update --recursive --remote

Regards.

feature request, some options

It would be nice if:

  1. I can feed EPG from another external application
    (via UDP unicast/multicast, transparent EPG/EIT)

  2. Same for NIT table.

  3. Map PIDS also SDT PMT not only via an algorithm but also via a re-mapping table

  4. Make from a tv service a radio service by extracting just 1 audio pid.

1-2. At least to have an option to mute NIT and/or EPG/EIT.

  1. At least to have the option to leave its parameters (PIDS) as-is. (transparent muxing)

  2. (Any other suggestion welcomed, )

1-2. For example both features can be a single option by specifying transparent muxing on PID
(0x0010 and 0x0012) and then adding stream source for each of them.

Thanks.

[improvement] Receive unicast UDP streams

When trying to receive a stream from a unicast udp source, I get the following error:
Jun 14 11:44:52 host ux-mptsd: ERR : udp://192.168.222.6:1234 is not multicast address
with this config:
[Channel1]
service_id = 1
id = test
name = "Test"
source = udp://192.168.222.6:1234

Maybe this should be considered as an improvement for the future, it's not always desirable to flood a switch with multicast traffic.

Output PIPE | File

Hi @gfto ,

In order to support PIPE output (instead of only Network UDP output), I suggest to merge the changes from @gvangool : https://github.com/gvangool/mptsd/commits/master

His work includes support for file support when disabling network output. Using in this way, it's possible to pipe the output to other tools, as for example: mptsd -N -W - | ffmpeg

You found it interesting?

SID 550 results in invalid stream

HI.
Setting SIDs of 550, 551 and 552 for a stream with 3 programs made the stream broken/invalid ("invalid headers" reported by VLC, no image on QAM). I lowered it to 500, 501 and 502 and it was ok.
I assume there is a problem with SIDs higher than 511?

sdt decripter show scramble sign $

hello sir,
i am using mumudvb with sasc-ng.
then i put its stream to your mptsd software then i check stream with ts reader its show scamble sign in sdt.
channels work fine but its show $ sign so can u make it fta it?
thnx.

New release

Would be nice to do a new official release of mptsd with the recent changes and newer dependencies (at least libtsfuncts) to simplify packaging.

Feature Request

Could the option be added to mux private PES stream such as Teletext? Yes I know, Its a dead format however, I'd like to use teletext as a way of showing DVDB-T Transmitter status. What would be involved in the code? Time $$?

How to use

Hi ,

how i can use this for DVB-C as in config file you shown for the transponder in NIT.config

Reserve PID Info

Hello,

Is there any method to preserve incoming source stream's PID Info (Video PID, Audio PID, Service ID) instead of overwriting new values ?

Thx,

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.