Community
cancel
Showing results for 
Search instead for 
Did you mean: 
MD7
Beginner
1,766 Views

Issue with video streaming using ffmpeg

Hi

I have a USB Webcam (Logitech C270) connected to a Edison board.

 

I would like to stream the video and access it from an internet browser

 

The edison-image-ww18-15 image is installed on the Edison

Here is an extraction of the shell window

------------------------------------------------------------------

 

 root@edison:~# node edi-cam/web/server/server.js & [1] 356 root@edison:~# WebSocket server listening on port 8084 HTTP server listening on port 8080 Listening for video stream on port 8082 edi-cam/bin/do_ffmpeg.sh ffmpeg version 2.6.3- http://johnvansickle.com/ffmpeg/ http://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2015 the FFmpeg developers  built with gcc 4.9.2 (Debian 4.9.2-16)  configuration: --enable-gpl --enable-version3 --disable-shared --disable-debug --enable-runtime-cpudetect --enable-libmp3lame --enable-libx264 --enable-libx265 --enable-libwebp --enable-libspeex --enable-libvorbis --enable-libvpx --enable-libfreetype --enable-fontconfig --enable-libxvid --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-gray --enable-libopenjpeg --enable-libopus --enable-libass --enable-gnutls --enable-libvidstab --enable-libsoxr --cc=gcc-4.9  libavutil 54. 20.100 / 54. 20.100  libavcodec 56. 26.100 / 56. 26.100  libavformat 56. 25.101 / 56. 25.101  libavdevice 56. 4.100 / 56. 4.100  libavfilter 5. 11.102 / 5. 11.102  libswscale 3. 1.101 / 3. 1.101  libswresample 1. 1.100 / 1. 1.100  libpostproc 53. 3.100 / 53. 3.100 Input # 0, video4linux2,v4l2, from '/dev/video0':  Duration: N/A, start: 51.807801, bitrate: 36864 kb/s  Stream # 0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 320x240, 36864 kb/s, 30 fps, 30 tbr, 1000k tbn, 1000k tbc Please use -b:a or -b:v, -b is ambiguous Stream Connected: 127.0.0.1:35276 size: 320x240 Output # 0, mpeg1video, to 'http://127.0.0.1:8082': http://127.0.0.1:8082':  Metadata:  encoder : Lavf56.25.101  Stream # 0:0: Video: mpeg1video, yuv420p, 320x240, q=2-31, 800 kb/s, 30 fps, 30 tbn, 30 tbc  Metadata:  encoder : Lavc56.26.100 mpeg1video Stream mapping:  Stream # 0:0 -> # 0:0 (rawvideo (native) -> mpeg1video (native)) Press [q] to stop, [?] for help frame= 18 fps=0.0 q=2.0 size= 66kB time=00:00:00.53 bitrate=1013.0kbits/s frame= 33 fps= 33 q=2.0 size= 123kB time=00:00:01.03 bitrate= 972.2kbits/s frame= 48 fps= 32 q=2.0 size= 176kB time=00:00:01.53 bitrate= 940.6kbits/s frame= 63 fps= 31 q=2.0 size= 238kB time=00:00:02.03 bitrate= 958.5kbits/s frame= 79 fps= 31 q=2.0 size= 295kB time=00:00:02.56 bitrate= 941.0kbits/s frame= 94 fps= 31 q=2.0 size= 349kB time=00:00:03.06 bitrate= 931.3kbits/s frame= 109 fps= 31 q=2.0 size= 401kB time=00:00:03.56 bitrate= 921.4kbits/s frame= 124 fps= 31 q=2.1 size= 464kB time=00:00:04.06 bitrate= 934.4kbits/s frame= 139 fps= 31 q=2.0 size= 517kB time=00:00:04.56 bitrate= 926.7kbits/s frame= 154 fps= 31 q=2.0 size= 571kB time=00:00:05.06 bitrate= 922.6kbits/s frame= 169 fps= 30 q=2.0 size= 626kB time=00:00:05.56 bitrate= 921.8kbits/s 

 

-----------------------------------------------------------------------------------------------------------------

 

In shell, everything looks ok and Webcam LED turn ON after sending these commands

 

But in the internet browser, I don't see anything except a white rectangular (empty)

Any idea why I don't see anythin on the browser ?

Thanks

11 Replies
Pablo_M_Intel
Employee
197 Views

Hi Wavics,

Are you using the Arduino Breakout board or the Mini Breakout board?

Regarding the process, what steps are you following to make the webcam work?

Regards,

PabloM_Intel

MD7
Beginner
197 Views

Hi Pablo,

I use the Arduino Breakout board.

I have node.js running on the platform and try to stream the video using ffmpeg.

Here is the status :

- I manage to save the video in an output file using ffmpeg

- I do not manage to stream it on my PC internet browser using ffmpeg. The PC is connected to the Edison through a router

Regards,

Wavics

JesusE_Intel
Moderator
197 Views

Hi Wavics,

Are you using the edi-cam from https://github.com/drejkim/edi-cam drejkim/edi-cam · Github?

I also had a similar issue, the node.js would be running and the webcam LED was on. When i loaded the nodejs server in a web browser using the IP address it would say loading or simply a blank screen. How are you addressing the server in the browser? Depending on your network configuration your address should be something like http://192.168.1.2:8080

Also, did you update the websocket address in the web/client/index.html?

Mine was something like var wsUrl = 'ws://192.168.1.2:8084/';

If that does not work, i suggest you to re-flash your Edison.

Regards,

Jesus

msoni1
New Contributor I
197 Views

hey Wavics,

I am also following the same tutorial. I got my camera configured and get live streaming through websocket.

I also want to capture image and store that on edison. can you help me with this.?

Thanks,

Malay

Pablo_M_Intel
Employee
197 Views

Hi Malay_soni,

I saw that you already have an opened case discussing the same issue that you asked here. So we will continue providing you support in that thread /thread/87420 https://communities.intel.com/thread/87420.

Regards,

PabloM_Intel

jjun
Novice
197 Views

Hi, I am also unable to show the image on the webserver following this tutorial: http://www.instructables.com/id/Edison-monitoring-system-with-motion-detection-and/?ALLSTEPS Edison monitoring system with motion detection, cloud connection and video streaming - All

My web server is able to run with a blank image.

Following Step 3: Configure web server for streaming the video across the network

 

I've created directories as followed using groupadd and useradd

Next, i did not fully understood "Copy the web server autostart script into /etc/init.d to have it started on OS boot."

I skipped this step since the motion-webserver script is already in it after i git clone this repo, am i doing it right?

Next, i cp 'scripts' from edison-mon-sys/home/motion over to /home/motion/

Next, i did a npm install in home/motion/scripts

However there is a warning line displayed: npm WARN package.json motion-edison-demo-webserver@0.1.0 No repository field.

Lastly, i change the IP address in index.html to http://(board/ http://(board/ IP):10080 as followed and did a node server.js however its a blank image.

 

Can anyone guide me what did i do wrong?

 

Pablo_M_Intel
Employee
197 Views

Hi mr_crocodile556,

I haven't tried the process that you mention, but I've been able to implement this one https://github.com/drejkim/edi-cam https://github.com/drejkim/edi-cam. Have you tried with this one? Node.js is used in both processes so I believe you won't have any issues with that.

Regards,

Pablo

jjun
Novice
197 Views

Thank you, yes i am able to implement the one on edi-cam as well, however i would like to add in a motion detecting function for my project.

Since, the one on edi-cam did not have motion detecting function,i tried to follow through http://www.instructables.com/id/Edison-monitoring-system-with-motion-detection-and/?ALLSTEPS Edison monitoring system with motion detection, cloud connection and video streaming - All

and re created a new web server with that tutorial.

Do you have any idea how do i add in motion detecting function to my camera?

Pablo_M_Intel
Employee
197 Views

Hi mr_crocodile556,

Have you checked this guide before? http://www.instructables.com/id/Motion-Activated-Security-Camera-using-Intel-Ediso/ http://www.instructables.com/id/Motion-Activated-Security-Camera-using-Intel-Ediso/. You could even try to implement the motion section of the first tutorial you mentioned, but using the webserver from the one I shared with you. It should be possible to mix them both.

Regards,

Pablo

jjun
Novice
197 Views

Thank you for the useful link,

I tried implementing http://www.instructables.com/id/Edison-monitoring-system-with-motion-detection-and/?ALLSTEPS Edison monitoring system with motion detection, cloud connection and video streaming - All and i faced a problem here

Under Step 2:Configure Motion,

I followed the instruction and pasted motion.conf file download from his repo into /etc

Next, i put the init.d directory into /etc.

That should be all for Step 2 right?

However when i run the command of "motion" to test it out i received the following error

[0] Processing thread 0 - config file /etc/motion.conf [0] Unknown config option "ffmpeg_cap_new" [0] Unknown config option "ffmpeg_cap_motion" [0] Unknown config option "ffmpeg_timelapse" [0] Unknown config option "ffmpeg_timelapse_mode" [0] Unknown config option "ffmpeg_bps" [0] Unknown config option "ffmpeg_variable_bitrate" [0] Unknown config option "ffmpeg_video_codec" [0] Unknown config option "ffmpeg_deinterlace" [0] Unknown config option "movie_filename" [0] Unknown config option "timelapse_filename" [0] Motion 8.4.0 Started [0] Thread 1 is from /etc/motion.conf [0] motion-httpd/8.4.0 running, accepting connections [1] Thread 1 started [0] motion-httpd: waiting for data on port TCP 8080 [1] cap.driver: "uvcvideo" [1] cap.card: "UVC Camera (046d:0825)" [1] cap.bus_info: "usb-dwc3-host.2-1" [1] cap.capabilities=0x84000001 [1] - VIDEO_CAPTURE [1] - STREAMING [1] Test palette MJPG (640x480) [1] Using palette MJPG (640x480) bytesperlines 0 sizeimage 341333 colorspace 00000008 [1] found control 0x00980900, "Brightness", range 0,255 [1] "Brightness", default 128, current 128 [1] found control 0x00980901, "Contrast", range 0,255 [1] "Contrast", default 32, current 32 [1] found control 0x00980902, "Saturation", range 0,255 [1] "Saturation", default 32, current 32 [1] found control 0x00980913, "Gain", range 0,255 [1] "Gain", default 64, current 64 [1] mmap information: [1] frames=4 [1] 0 length=341333 [1] 1 length=341333 [1] 2 length=341333 [1] 3 length=341333 [1] Using V4L2 [1] Resizing pre_capture buffer to 1 items Corrupt JPEG data: 1 extraneous bytes before marker 0xd1 Corrupt JPEG data: 5 extraneous bytes before marker 0xd7 Corrupt JPEG data: 1 extraneous bytes before marker 0xd2 Corrupt JPEG data: 1 extraneous bytes before marker 0xd5 Corrupt JPEG data: 3 extraneous bytes before marker 0xd0

It is a continuous script that runs unless i Ctrl+C which outputs this error eventually

module.js:340  throw err;  ^ Error: Cannot find module 'temboo/core/temboosession'  at Function.Module._resolveFilename (module.js:338:15)  at Function.Module._load (module.js:280:25)  at Module.require (module.js:364:17)  at require (module.js:380:17)  at Object. (/home/motion/scripts/xively_post.js:37:16)  at Module._compile (module.js:456:26)  at Object.Module._extensions..js (module.js:474:10)  at Module.load (module.js:356:32)  at Function.Module._load (module.js:312:12)  at Function.Module.runMain (module.js:497:10) [0] httpd - Finishing [0] httpd Closing [0] httpd thread exit [0] Motion terminating

Are you able to help me look through the tutorial for me under Step 2 in the link provided above?

Thank you.

Pablo_M_Intel
Employee
197 Views

Hi mr_crocodile556,

I see that you're trying to create an init script, but according to the tutorial creating a system service is also a possibility, have you tried this? As it is mentioned in the tutorial, it would be better to use system as Edison uses it as its primary system control. I would suggest you to check this thread, /thread/60537 https://communities.intel.com/thread/60537. You can also take a look at the other services to see how it should be written and the instructions it should have.

Regards,

Pablo

Reply