ford-prefect / gst-sync-server Goto Github PK
View Code? Open in Web Editor NEWA library for synchronised network playback applications
License: GNU Lesser General Public License v2.1
A library for synchronised network playback applications
License: GNU Lesser General Public License v2.1
I successfully play a videousing the library on x86 hardware, but failed on a Raspberry Pi 4.
RaspbianOS lite Buster. (based on Debian 10 server, no gui).
I can compile and run the example with no errors, but there are not any video output
I read #7 and tested gst-launch:
gst-launch-1.0 playbin uri=file:///home/pi/media/printgwmm.mp4
and it failed.
But using kmmal:
gst-launch-1.0 playbin uri=file:///home/pi/media/printgwmm.mp4 video-sink="kmssink"
it works.
The logs for ./test-server -f pl.txt --gst-debug-level=4
are:
http://sprunge.us/jYOssh
I assume the library uses autovideosink and the problem is that is selecting other sink like ximagesink or glimagesink that is not working with my setup.
So my specific question is, how can I change the sink in the code? Is hardcoded? I can't find any option on the command line arguments.
Or what are your recommendation?
Thanks in advance.
My playlist file:
file:///tmp/big_buck_bunny_720p.mp4 -1
My server on 192.168.2.24
runs the server with arguments -f playlist.txt
. Client started on other machine with -a 192.168.2.24
argument. I see the following output:
Added client: gst-sync-client-eba0f419, config {}
But the client does not start playing, it only shows a still of the first frame when the video restarts. What am I doing wrong here?
Furthermore I also notice only TCP/IP traffic when the video is paused, starts playing or looped. Is the sync event only sent on changes? Won't the video synchronization be off when you play long video files? How is this handled in the TCP example?
Attempting to compile this code:
$ ./autogen.sh autoreconf: Entering directory '.' autoreconf: configure.ac: not using Gettext autoreconf: running: aclocal -I m4 -I common/m4 aclocal: error: couldn't open directory 'common/m4': No such file or directory autoreconf: aclocal failed with exit status: 1
It can be workarounded by adding m4 directory at common:
$ mkdir common/m4
Then it fails again with:
$ ./autogen.sh autoreconf: Entering directory '.' autoreconf: configure.ac: not using Gettext autoreconf: running: aclocal -I m4 -I common/m4 autoreconf: configure.ac: tracing autoreconf: running: libtoolize --copy autoreconf: running: /usr/bin/autoconf autoreconf: running: /usr/bin/autoheader autoreconf: running: automake --add-missing --copy --no-force configure.ac:48: error: required file 'common/Makefile.in' not found configure.ac:48: error: required file 'common/m4/Makefile.in' not found docs/Makefile.am:1: error: ENABLE_GTK_DOC does not appear in AM_CONDITIONAL automake: error: cannot open < common/upload-doc.mak: No such file or directory autoreconf: automake failed with exit status: 1
hi,
I have multiple rtsp streams from multiple cameras, i want to synchronize those streams. so far i don't think the current library support this, Any ideas how can i accomplish this ?
thanks in advance,
I would like to point out that an identifier like โ__GST_SYNC_SERVER_H
โ does not fit to the expected naming convention of the C language standard.
Would you like to adjust your selection for unique names?
Some files reference glib-unix, and use functions like g_unix_open_pipe
is there an easy way to replace them with something that can run on windows?
Hi, I can't compile this project in Ubuntu 22.04.
(I am a noob building in C, so sorry if this is not a project-specific issue, but I search for answers on other sites and cannot find a more general building-related solution.)
./autogen.sh
aclocal: error: couldn't open directory 'common/m4': No such file or directory
mkdir common/m4
./autogen.sh
configure.ac:48: error: required file 'common/Makefile.in' not found
configure.ac:48: error: required file 'common/m4/Makefile.in' not found
Hi,
first of all, thank you for this great project.
I'm trying to replicate your blog post setup (one server and one client running on different machines), and I'm getting into some problems:
-If I run the client locally (on the same machine as the one running the server), everything works just fine: playlist is reproduced, and a XWindow is open by the client, playing the videos.
-If I run the client on a different machine from the server, the client seems that it can reach the server (traces on the server shown that the client is connected), but it doesn't reproduce the playlist.
I put some traces on both sides and looks that the client stops somewhere on the GstLoop. It doesn't reach synchronization phase neither.
I'm using a switch in order to connect both equipments. Firewalls are all open.Both equipments are running on Ubuntu 16.04.
Can you, please, provide me any clue? Where the client can get stuck?
Thank you very much for your help. Best,
Mariano.
Hi,
I am trying to get the gst-sync-server
to work on the raspberry pi for a videowall usecase. Do you have any experience or advice?
I tried installing the following:
glib2
. However, gstreamer 720p playback works but 1080p does not (omxplayer however is working).Do you recommend compiling all gstreamer deps from source?
The library perfectly works on my linux desktop and laptops.
Thanks in advance,
Rein
Hello, As far as I understood correctly, each client decodes the overall video and then crops the relevant part in video order to render the correct part. So the question is, how synchronization should be done in case where each client plays a different part of video? In other words, assume that I have 4k video and split it to 4 x 1080p pieces and then trying to synchronize all clients as they are decoding relevant parts of the video.
I have multi devices, and use rtspsrc to get multi live streams, can I use it to sync streams and compose them to a panoramic video stream?
Hi,
It seems i ran into an issue when trying to pass a file as uri. Below is the log. Maybe, the uri is given in some other format?
./test-server /home/suvir/Downloads/bbb_sunflower_1080p_30fps_normal.mp4
You must specify a URI or playlist path
suvir@suvir-:~/branch_suvir/gst-sync-server/examples$ ./test-server file:////home/suvir/Downloads/bbb_sunflower_1080p_30fps_normal.mp4
You must specify a URI or playlist path
suvir@suvir-:~/branch_suvir/gst-sync-server/examples$ ./test-server file:///home/suvir/Downloads/bbb_sunflower_1080p_30fps_normal.mp4
You must specify a URI or playlist path
suvir@suvir-:~/branch_suvir/gst-sync-server/examples$
suvir@suvir-:~/branch_suvir/gst-sync-server/examples$
suvir@suvir-:~/branch_suvir/gst-sync-server/examples$
suvir@suvir-:~/branch_suvir/gst-sync-server/examples$ ./test-server file:///home/suvir/Downloads/bbb_sunflower_1080p_30fps_normal.mp4
You must specify a URI or playlist path
suvir@suvir-:~/branch_suvir/gst-sync-server/examples$ ./test-server "file:///home/suvir/Downloads/bbb_sunflower_1080p_30fps_normal.mp4"
You must specify a URI or playlist path
suvir@suvir-:~/branch_suvir/gst-sync-server/examples$
suvir@suvir-:~/branch_suvir/gst-sync-server/examples$
suvir@suvir-:~/branch_suvir/gst-sync-server/examples$ ./test-server uri="file:///home/suvir/Downloads/bbb_sunflower_1080p_30fps_normal.mp4"
You must specify a URI or playlist path
Thanks
Suvir
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.