ffmpeg - Make video frames from a livestream identifiable across multiple clients -
i need distribute video stream live source several clients additional requirement each frame identifiable across clients.
i have done research topic, , have arrived @ possible solution can share. solution seems suboptimal , first experience of working video streams, want see if knows better way.
the reason why need able identify specific frames within video stream streaming clients need able talk time differences between events each of them identifies in video stream.
a little clarifying example
i want enable following interaction:
- two client applications dewey , stevie connect streaming server
- dewey displays stream , stevie saves disk
- dewey identifies specific video frame of interest stevie, wants tell stevie it
- dewey extracts identifying information video frame , sends stevie
- stevie uses identifying information extract same frame copy of livestream saving
dewey cannot send frame stevie directly, because malcolm , reese want tell him specific video frames , stevie interested in time difference between findings.
suggested solution
the solution found using ffserver broadcast rtp stream , use timestamps rtcp packets identify frames. these timestamps used synchronize audio , video, , not provide shared timeline across several clients, why skeptical best way solve problem.
it seems beneficial have frame numbers, increasing counter of frames instead of arbitrary timestamps increase perhaps varying offset application have reference neighboring frames , seems easier compute time differences frame numbers, other way around.
depends on format. example mpeg transport stream uses program clock reference (pcr). started, ffplay
can presentation time stamp (pts) of frame , frame count. i'm not sure frame count since depends on playback start time.
ffplay -i <input stream> -vf showinfo
the pcr value wrap @ point have account too.
Comments
Post a Comment