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