Hi there,

I am recently playing a lot with live555 streaming server, as I need to create 
a block of larger test environment, responsible for streaming content from some 
storage. I ran into some questions and it seems I need know-how/knowledge based 
assistance with regards to live555.



Background scenario:

- stream a video from video file (H264 elementary stream or wrapped in a 
container) ok

- stream a part of video file starting from specific position (FROM: timestamp)

- stream a video file from specific postion (FROM: timestamp) while it's still 
being written by some other process

- stream a specified part of video file, start-end  (FROM - TO /timestamp)

- stream several video files to one client on demand at the same time - 
preferrably synchronized (assuming streams fps etc. matches)


I have some questions regarding streaming and one of container formats.

I've chosen to stream video files using RTSP (some player clients handle it ok 
+ live555 rtsp client is in the package) and it seems everything works ok in 
majority of scenarios.

However, I've run into questions for which neither source code of live555 or 
available net resources provided answers. Please mind I could miss something in 
source code, as it's been a while since I was doing C/C++ - so if I ask about 
something already there, don't get too upset :-)



STREAMING

In case of 'stream several video files to one client', I can handle it with 
several independent RTSP sessions, however it struck me, that one RTSP session 
by design can handle multiple media types within one session. I understand 
intended usage (e.g. vide + audio + subtitles).

QUESTION 1: Could I create RTSP stream with multiple videos in it (assuming 
something on the client end will understand it) and stream each video properly 
within that session using LIVE555 Media Server?

QUESTION 2: Do you know any player which could handle such session out of the 
box (play multiple video streams - multiple windows, or one window, whatever)?

QUESTION 3: In such scenario, an 'aggregate play' option: would it cause all 
videos start/pause/stop streaming together in live555 media server?

QUESTION 4: 'Aggregate play': would 'play' cause all X videos to be somehow 
synchronized when FROM: timestamp is provided, e.g. based on IDRs in files?



CONTAINER FORMAT

I was trying to employ MKV container for written files (seeking is a feature I 
could use a lot), however I've run into issues when trying to stream MKV in 
FROM - TO (timestamps) manner

It seems the "TO" part is not implemented in live555 server - I can only 
appoint FROM when in file MKV can be played and by analysing code, it's the 
only part handled.

And yes, for sake of simplicity it's enough for me to find the first IDR before 
FROM: timestamp and stop on first IDR after TO: timestamp (and let player 
handle stuff on client side). If this is 'dumb' approach, I would welcome any 
piece of advice. I strongly prefer server-side solution for some level of 
synchronization though (if only possible), as it would do a lot of things on 
client side much easier. 


QUESTION 5: Why 'TO: timestamp' is not handled for MKV playback & streaming? Or 
if I am mistaken, how to stream MKV file up to appointed 'end' timestamp?


Second issue is connected to 'stream a file while it's being still written' & 
MKV. I just can't get to understand how to do it (except general guideline on 
MKV site: https://matroska.org/technical/streaming/index.html , live streaming 
part). Writing such file part is still an issue for me (I did some experiments 
with ffmpeg to capture h264 elementary stream and turn it to MKV in 
stream-manner, but I've failed so far; all I could get is to write it in 
appointed chunks and only then stream it using live555, when MKV file is 
complete; so at the end I have series of multiple files; wrapping up a file 
each e.g. 5-10 seconds is not an option here).


QUESTION 6: Can LIVE555 Media Server stream such 'unfinished' MKV file, which 
is still being written to? If yes, what are the conditions/how the file must be 
written to enable that?

QUESTION 7: Could you advise maybe how to create such 'unfinished' MKV file 
using e.g. ffmpeg or other tool (maybe something from live555 suite can do 
that)?



Forgive me any grammar/spelling errors - English is not my native language. If 
something is not clear, please let me know, I'll try to explain more in details 
(as much as I am allowed or capable of).


Best Regards, Lukas
_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to