Closed kamlesh-solution closed 4 years ago
Hello @kamlesh-solution ,
Are you saving the frames from the camera in a directory? If yes, you will need to modify the directory argument in https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c/blob/e2e2e69003a361bdc34e8b10e3c61e810711a582/samples/kvsWebRTCClientMaster.c#L35 and it should work.
Else, you will have to write the code to extract the frame from the camera at a specific rate and encode it into H.264 format and then send it over the signaling channel.
Considering you have a USB camera source, it is preferable to use the kvsWebRTCClientMasterGstreamerSample and tailor the pipeline to your use case. To get started, you can probably use the pipelines as suggested in the Producer SDK repo:
Hi disa
Thanks for reply when i compile this kvsWebRTCClientMasterGstreamerSample.c file i m getting include.h header not found error.
Can you tell me where i can get kvsWebRTCClientMasterGstreamerSample executable object file for stream directly from raspberrypi connected pi camera on signal channel?
Hello @kamlesh-solution ,
Can you share the log and steps you used to build the repo?
The kvsWebRTCClientMasterGstreamerSample
executable should be available in the build directory if the cmake..
and make
steps succeed. As I mentioned in the previous comment, you will have to edit your GStreamer pipeline for your USB Camera. Edit the following line according to your setup:
https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c/blob/9bf2865519cf16dbecb619ea1dd12c457ed35d4f/samples/kvsWebRTCClientMasterGstreamerSample.c#L132
Note: If you do not have GStreamer installed on your system, GStreamer related binaries will not be created. Make sure you have them installed using the steps in https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/install-instructions-linux.md
Hello @disa6302
this following is log after execute cmake command i found problem actually cmake command could not detect gstreamer on my raspberrypi see log ( -- No package 'gstreamer-1.0' found)
but i have installed gstreamer see following log waht is issue?
gst-launch-1.0 --version
gst-launch-1.0 version 1.14.4
GStreamer 1.14.4
http://packages.qa.debian.org/gstreamer1.0
sudo cmake .. -- Kinesis Video PIC path is /home/pi/amazon-kinesis-video-streams-webrtc-sdk-c/open-source/amazon-kinesis-video-streams-pic/ -- Kinesis Video C Producer path is /home/pi/amazon-kinesis-video-streams-webrtc-sdk-c/open-source/amazon-kinesis-video-streams-producer-c/ -- Kinesis Video WebRTC Client path is /home/pi/amazon-kinesis-video-streams-webrtc-sdk-c -- dependencies install path is /home/pi/amazon-kinesis-video-streams-webrtc-sdk-c/open-source/local -- Bitness 32 bits -- Checking for module 'gstreamer-1.0' -- No package 'gstreamer-1.0' found gstreamer not found. Will not build gstreamer samples -- Kinesis Video PIC path is /home/pi/amazon-kinesis-video-streams-webrtc-sdk-c/open-source/amazon-kinesis-video-streams-pic/ -- Kinesis Video Producer path is /home/pi/amazon-kinesis-video-streams-webrtc-sdk-c/open-source/amazon-kinesis-video-streams-producer-c/ -- Kinesis Video Open Source path is /home/pi/amazon-kinesis-video-streams-webrtc-sdk-c/open-source/local -- Bitness 32 bits -- Configuring done -- Generating done -- Build files have been written to: /home/pi/amazon-kinesis-video-streams-webrtc-sdk-c/build
@kamlesh-solution ,
It looks like pkg_check_modules()
is unable to find gstreamer-1.0. Could you run the following command and paste the output here?
pkg-config --list-all
.
Also, make sure you have followed the steps in https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/install-instructions-linux.md to install pkg-config, autoconf and gstreamer related packages.
@disa6302
this is my output of pkg-config --list-all and yes i have followed steps for install gsteramer related package using gstreamer i can stream video on video stream channel name but i could not using webrtc c sdk
I have this version of gstreamer installed gst-launch-1.0 --version gst-launch-1.0 version 1.14.4 GStreamer 1.14.4
pkg-config --list-all xorg-sgml-doctools xorg-sgml-doctools - Stylesheets and entities for X.Org documentation fixesproto FixesProto - X Fixes extension headers mpi-cxx Open MPI - Portable high-performance MPI implementation xproto Xproto - Xproto headers recordproto RecordProto - Record extension headers formw formw - ncurses 6.1 add-on library ncurses++ ncurses++ - ncurses 6.1 add-on library openssl OpenSSL - Secure Sockets Layer and cryptography libraries and tools damageproto DamageProto - Damage extension headers dri3proto DRI3Proto - DRI3 extension headers resourceproto ResourceProto - Resource extension headers python-3.8 Python - Build a C extension for Python form form - ncurses 6.1 add-on library pthread-stubs pthread stubs - Meta package for pthread symbols - defaults to heavyweight ones if the C runtime does not provide lightweight ones. ompi Open MPI - Portable high-performance MPI implementation xt Xt - X Toolkit Library mpi Open MPI - Portable high-performance MPI implementation xtrans XTrans - Abstract network code for X gnome-icon-theme gnome-icon-theme - A collection of icons used as the basis for GNOME themes menu menu - ncurses 6.1 add-on library xdmcp Xdmcp - X Display Manager Control Protocol library windowswmproto WindowsWMProto - WindowsWM extension headers videoproto VideoProto - Video extension headers libnl-3.0 libnl - Convenience library for netlink sockets renderproto RenderProto - Render extension headers mpi-fort Open MPI - Portable high-performance MPI implementation panelw panelw - ncurses 6.1 add-on library poppler-data poppler-data - Encoding files for use with poppler libcurl libcurl - Library to transfer files with ftp, http, etc. tic tic - ncurses 6.1 add-on library udev udev - udev libssl OpenSSL-libssl - Secure Sockets Layer and cryptography libraries kbproto KBProto - KB extension headers dri2proto DRI2Proto - DRI2 extension headers xf86dgaproto XF86DGAProto - XF86DGA extension headers lxappearance lxappearance - Tool used to customize look and feel of gtk+ applications. systemd systemd - systemd System and Service Manager libibverbs libibverbs - RDMA Core Userspace Library adwaita-icon-theme gnome-icon-theme - A collection of icons used as the basis for GNOME themes caf-openmpi CAF - Co-Array Fortran support python-3.8-embed Python - Embed Python into an application ice ICE - X Inter Client Exchange Library libcap libcap - libcap xf86vidmodeproto XF86VidModeProto - XF86VidMode extension headers iso-codes iso-codes - ISO country, language, script and currency codes and translations libusb-1.0 libusb-1.0 - C API for USB device access from Linux, Mac OS X, Windows, OpenBSD/NetBSD and Solaris userspace presentproto PresentProto - Present extension headers applewmproto AppleWMProto - AppleWM extension headers ncurses ncurses - ncurses 6.1 library tinfo tinfo - ncurses 6.1 terminal interface library libmnl libmnl - Minimalistic Netlink communication library openobex OpenOBEX - Free implementation of the Object Exchange protocol xcmiscproto XCMiscProto - XCMisc extension headers xineramaproto XineramaProto - Xinerama extension headers libcrypto OpenSSL-libcrypto - OpenSSL cryptography library x11 X11 - X Library xau Xau - X authorization file management libary hwloc hwloc - Hardware locality detection and management library compositeproto CompositeExt - Composite extension headers panel panel - ncurses 6.1 add-on library xkeyboard-config XKeyboardConfig - X Keyboard configuration data orc-0.4 orc-0.4 - Library of Optimized Inner Loops Runtime Compiler yelp-xsl yelp-xsl - Yelp XSLT Stylesheets dmxproto DMXProto - DMX extension headers ompi-c Open MPI - Portable high-performance MPI implementation sm SM - X Session Management Library mpi-c Open MPI - Portable high-performance MPI implementation ompi-cxx Open MPI - Portable high-performance MPI implementation ncursesw ncursesw - ncurses 6.1 library ompi-fort Open MPI - Portable high-performance MPI implementation geany Geany - A fast and lightweight IDE using GTK+ bigreqsproto BigReqsProto - BigReqs extension headers scrnsaverproto ScrnSaverProto - ScrnSaver extension headers inputproto InputProto - Input extension headers gtk-engines-2 gtk-engines-2 - GTK+ Theme Engines menuw menuw - ncurses 6.1 add-on library bash-completion bash-completion - programmable completion for the bash shell xf86bigfontproto XF86BigFontProto - XF86BigFont extension headers libfl libfl - Flex (the fast lexical analyzer) support library fontsproto FontsProto - Fonts extension headers xextproto XExtProto - XExt extension headers libnl-route-3.0 libnl-route - Netlink Routing Family Library glproto GLProto - GL extension headers randrproto RandrProto - Randr extension headers xkbcomp xkbcomp - XKB keymap compiler xf86driproto XF86DRIProto - XF86DRI extension headers bluez BlueZ - Bluetooth protocol stack for Linux gtk-engines-pixflat gtk-engines-pixflat - GTK+ PiXFlat Engine - originally based on Clearlooks but heavily modified ncurses++w ncurses++w - ncurses 6.1 add-on library shared-mime-info shared-mime-info - Freedesktop common MIME database xcb XCB - X-protocol C Binding orte Open MPI Run-Time Environment (ORTE) - Open MPI's run-time environment functionality
@kamlesh-solution ,
pkg-config
is unable to find gstreamer related packages. You will have to check where GStreamer related libraries are installed and then set the PKG_CONFIG_PATH
environment variable to where the libs are located so that pkg_check_modules()
can check the set path for GStreamer while running cmake
.
kvsWebRTCClientMaster is only meant to stream the files that we recorded. If you want to stream from the webcam you can try running the ./kvsWebrtcClientMasterGstSample. However you need to install gstreamer in your platform first. You can do that by running
$ sudo apt-get install gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-tools
Hello @disa6302 , @chehefen
I got ./kvsWebrtcClientMasterGstSample compiled executable file on my another raspberrypi but when i run ./kvsWebrtcClientMasterGstSample file with default gstreamer pipeline raspberrypi sending stream over channel but i can't show video its showing only three color please check this preview image link I connected pi camera with raspberrypi if i need to change in gstreamer pipeline what should i change in gstreamer pipeline please help me?
Can you share your pipeline here? Or, you can use the pipelines in https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/install-instructions-linux.md#running-the-gst-launch-10-command-to-start-streaming-from-usb-camera-source-which-has-h264-encoded-stream-already-in-ubuntu-and-raspberry-pi
@disa6302
Thanks default gstreamer pipeline worked for me now i can see streaming on aws media playback preview .
kinesis webrtc c sdk support raspberrypi zero w version?
@kamlesh-solution ,
I do not think we tested on Raspberry Pi 0 but I do not see why not. As long as it runs Raspbian/Ubuntu OS, it should work.
@kamlesh-solution can you close the issue if it's fixed? thanks
Hi
i successfully setup kinesis webrtc in c sdk on my raspberrypi. but when i run kvsWebRTCClientMaster sample app for stream from my raspberrypi attached camera on signal channel its not streaming on signal channel i checked kvsWebRTCClientMaster sample app its stream sample video only.
How can i stream video from my raspberrypi attached pi camera on signal channel using kvsWebRTCClientMaster sample app what changes i need to make for the same?
Thanks.