I’m currently exploring a concept for a low cost video chat (video phone) device, and am pondering whether to go in a Beagleboard Black or Raspberry Pi direction.
I’ve done a heckuva lot of research on whether there’s any analogous project for creating an open source video chat device, BBB, RPi, or otherwise, but haven’t really seen anything.
The telephony layer might use something like Ekiga (http://www.ekiga.org/) or xMeeting, which would provide SIP telephony between two PCs. Ekiga claims that HD voice and HD video streaming are supported. I’ll be taking a whack at this to confirm shortly. Regardless, some open source telephony is part of the mix, an alternative to Skype which requires licensing for any “embedded system.”
One of the obvious challenges for any video chat device is on the audio and video front. I’ve been actively following some of the group discussions around audio I/O on the BBB and see that even some of the experts (which I’m not) are wrangling with BBB’s audio challenges while keeping the HDMI available.
Neither BBB or RPi is perfect, but which do you think might be preferable?
Thanks very much for any thoughts or guidance.
If you need HD video you are going to want a Raspberry Pi, mainly because you’ll want to compress the video stream over the network, and the Beaglebone Black has no hardware decoders for any video codecs. The RPi can handle a 30 fps 1080p h.264 stream because of integrated hardware. Other codecs are available for a modest price (mpeg2 and vc-1). But on the other hand, the CPU in the Beaglebone Black has more than twice the performance as the RPi’s. (ARMv7 is ~%80 faster at the same frequency than ARMv6, and the RPi is DESIGNED (I ignore overclocking) for 700 MHz operation and the BBB is designed for 1 GHz.).
Thanks for the feedback, Nathaniel. Although HD quality video would be nice, it’s not critical. I’m mainly interested in smooth, acceptable playback both on the audio and video side. If my goal isn’t HD video per se, would that change your recommendation about platforms? Would you say there are more audio IO challenges on the BBB to contend with vs. an RPi?
This is wrong. I know the rpi has hardware acceleration for some video stuff, but you can get HD cameras that take care of most of the processing themselves. I do not claim to be an expert on this, but when the BBB first came out, I do recall a person saying they were getting 30FPS using an HD camera.
You should investigate this yourself further.
I’ve got a BBB connected to a Logitech C920. The C920 has three possible video outputs in the v4l2 settings, raw, MJPEG, and H264.
I followed some instructions from Derek Malloy on the web, and have been able to stream 1080p 30fps using ffmpeg over rtp on the network using 10% of the load on the BBB running at 300MHz. (3% when running at 1GHz)
I wasn’t streaming audio, but I don’t expect that would add significant overhead.
The two problems I’m trying to figure out right now are related to latency and lockups. I have not yet been able to get the latency much under 2 seconds. I was making this assessment by pointing my camera at the clock on my computer screen and comparing the delay in the video stream, so it’s just a rough estimate. My lockup problem is likely related to my WiFi adapter choice having some buggy drivers or firmware.
What do you mean wrong? I understand that many cameras will output H.264 BUT if the Beaglebone is also driving the screen on the other end, its not going to be able to handle an 1080p H.264 stream at 30 fps. That why I was talking about video decoders. But yes, if the Beaglebone is only performing the stream, you are going to want to find a camera that outputs pre-compressed video. Its plenty capable of handling the data transfer of the compressed stream.