ossrs / srs

SRS is a simple, high-efficiency, real-time media server supporting RTMP, WebRTC, HLS, HTTP-FLV, HTTP-TS, SRT, MPEG-DASH, and GB28181.
https://ossrs.io
MIT License
25.32k stars 5.33k forks source link

PROTOCOL: Support push MPEGTS over TCP. #861

Closed pkviet closed 4 years ago

pkviet commented 7 years ago

Hello great work on mpeg-ts udp ingest. Two suggestions: 1) allow for mpeg-ts tcp ingest : ffmpeg can listen to tcp mpegts

2) more importantly, for mpeg-ts programs with several video and audio tracks, it would be nice to be able to select video and audio through their PID . Wowza can do it (since 2011) : check [https://www.wowza.com/docs/how-to-select-mpeg-ts-stream-by-program-id-and-also-audio-language-by-pid] ;

maybe this is already possible ? I looked only cursorily the source code written by midok winlin and others for udp mpeg-ts .

winlinvip commented 7 years ago

I didn't get your point. 😭

pkviet commented 7 years ago

Ok sorry. Let me elaborate. I am suggesting a series of new features:

  1. Support ingest of mpeg-ts in tcp in addition to udp. There are two options, both being desireable: Ingest in push or in pull. Either the mpeg-ts encoder pushes to ossrs, or ossrs pulls from encoder. For instance wowza implemented only a few months ago tcp pull. I have the impression that such a feature would not be too far fetched to achieve because ffmpeg can do that, either pull or receive a push from encoder.
  2. Mpeg ts stream can support several programs and within programs several streams which can be several videos, different audio streams for different languages (think international broadcast in Europe with translation in english french german; or movie with original language track and second track for the dubbing , third track with director comment as in dvd). The audio tracks are identified by their pid. When a client in uk or france connects to the server, it would be nice to have a mechanism to request the right language. Wowza can do that and remuxes the mpegts ingest stream in rtmp, hls , mpegdash with correct language. I hope this is clearer ! 😀
winlinvip commented 7 years ago

For SRS to pull stream by FFMPEG from other servers, read https://github.com/ossrs/srs/wiki/v1_EN_Ingest.

For others to push to SRS, you can use RTMP(featured) or RTSP(experiment). For RTSP, please read https://github.com/ossrs/srs/wiki/v2_EN_Streamer

pkviet commented 7 years ago

Le 21/05/2017 à 6:57 AM, winlin a écrit :

For SRS to pull stream by FFMPEG from other servers, read https://github.com/ossrs/srs/wiki/v1_EN_Ingest.

ok so since ffmpeg can pull mpeg-ts TCP this would work

For others to push to SRS, you can use RTMP(featured) or RTSP(experiment). For RTSP, please read https://github.com/ossrs/srs/wiki/v2_EN_Streamer

yes but this is still not mpeg-ts tcp.

And this does not address the feature request of being able to select audio PID for the client (both for mpeg-ts udp ou tcp) Thanks for your attention.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/ossrs/srs/issues/861#issuecomment-302915251, or mute the thread https://github.com/notifications/unsubscribe-auth/AI2nT8cTKArTfZt3C6f_kbNjrm5M1pqMks5r78RCgaJpZM4NJ8mV.

winlinvip commented 7 years ago

So, I rename this issue title, it seems we only need to support push MPEGTS over TCP to SRS, right? With PID select feature.

winlinvip commented 7 years ago

I think this feature needs more vote and research, so assign to SRS4.

winlinvip commented 4 years ago

Fixed, maybe need some refactor and improve.

winlinvip commented 2 years ago

Dup to https://github.com/ossrs/srs/issues/2611 , support push HTTP-TS.

winlinvip commented 1 year ago

Dup to #250