• Content count

  • Joined

  • Last visited

  1. I have reworked ffmpeg's cedrus264 encoder to use libcedrus and modified libcedrus to allow few clients to use VE (in the same process). How it is possible to use both vdpau-sunxi decoder and cedrus264 encoder to transcode the video. The results for ./ffmpeg -hwaccel vdpau -i big_buck_bunny_720p_H264_AAC_25fps_3400K.MP4 -pix_fmt nv12 -r 5 -an -b:v 64k -c:v cedrus264 stream.mp4 are the following: Video is viewable, CPU usage is ~80-90%, FPS while encoding ~6.7, time real 0m56.523s, user 0m28.210s, sys 0m15.720s It is not as good as I was expecting though. Perhaps, copying data in memory is a bottleneck. Not sure it could be improved The code is located at https://github.com/divis1969/libcedrus (branch master) and https://github.com/divis1969/FFmpeg (branch 2.8-cedrus)
  2. It looks like libvdpau-suxi and ffmeg-cedrus are actually compete for VE. First one uses libcedrus to access VE, second uses the code compiled in directly. Most likely each one affects another. So, there should be some rework needed to allow these pieces of code to co-exist. Not sure about VE (cedrus) kernel driver, does it allow two clients or not. BTW, I'm still not sure whether vdpau is actually improving the decoding (see test #2). I suppose encoding back to mpeg hides the effect. Is there a test I can use to verify it (ex. to just drop the decoded frames)?
  3. Thanks for the links. I've built the ffmpeg from https://github.com/stulluk/FFmpeg-Cedrus and performed few tests to re-encode the mpeg file http://samplemedia.linaro.org/H264/big_buck_bunny_720p_H264_AAC_25fps_3400K.MP4 to reduce the frame rate to 5 FPS 1. Encoding with cedrus works pretty good, ffmpeg consumes around 120% CPU (my estimation of average, I've just run top at the same time). Test took: real 1m10.127s, user 1m8.180s, sys 0m5.530s. FFMpeg showed ~ 5.7-6.2 FPS at the time on encoding. Command line ./ffmpeg -i big_buck_bunny_720p_H264_AAC_25fps_3400K.MP4 -pix_fmt nv12 -r 5 -an -b:v 64k -c:v cedrus264 stream.mp4 2. Decoding with vdpau is something horrible. CPU (average) 90%, time real 9m44.446s, user 9m12.470s, sys 0m14.860s. FFMpeg shows 0.8 FPS while processing. ./ffmpeg -hwaccel vdpau -i big_buck_bunny_720p_H264_AAC_25fps_3400K.MP4 -r 5 -an stream.mp4 In both these case the video is viewable. 3. I've tried to use both vdpau and cedrus codec. CPU is only 10% ! BUT!! time real 7m6.911s, user 0m28.900s, sys 0m13.050s, processing FPS is 0.9. And video is completely unviewable... FFmpeg logged at the end: Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used). File length is 419 bytes. ./ffmpeg -hwaccel vdpau -i big_buck_bunny_720p_H264_AAC_25fps_3400K.MP4 -pix_fmt nv12 -r 5 -an -b:v 64k -c:v cedrus264 stream.mp4 What might be issue with vdpau? Is is possible to use both vdpau (to decode) and cedrus encoder simultaneously?
  4. Thanks everyone! I had modified the 'disp_mem_reserves' and now I can run vdpauinfo. Unfortunately, there are some issues with vdpau usage. 1. vdpauinfo only works if I use 'ssh -X' to connect bananapi. Otherwise it fails because it cannot connect X server. I'm suspecting I will not be able to use vdpau from the process running as a system service. What can I do to fix this? 2. Test with ffmpeg to add a timestamp sting over the RTP stream from camera and write it to the a file is failing. ffmpeg starts writing to a file but stucks at some point. After the termination with Ctrl-C (which is not so easy actually), the file is not looking like a valid mp4 (and is too short, about few KB) Is there any test case (maybe with the mp4 file as an input) which I can use to check vdpau functionality and performance? The RTP stream is 25 FPS, so perhaps I need to reduce the frame rate along with adding a time stamp to make it working... Is there any way to enable/collect some logging to debug the issue with ffmpeg?
  5. Yeah, I'll try. BTW, I've tried to build the desktop to figure out how this HW acceleration is enabled. But did not find it. At least kernel config seems have the CMA disabled. Is there any receipt how to replace the kernel on the system? I do not want to use a fresh install...
  6. Actually, I was able to install kerberos.io onto armbian ubuntu server running on Banana PI M. I did not remember the exact steps. I'd definitely installed php-7.0. There was also some issue with the .so libraries (it is referring libs which have different naming, something with the version .56 in the name as I recall), I've just created the links to existing libs. I was able to configure the IP camera, but I'm not satisfied with the event detection and video recording. I'm suspecting the reason is the stream quality and the video processing performance. I'm trying to enable the hw-assisted decoding but have some troubles (see https://forum.armbian.com/index.php?/topic/4060-hw-accelerated-video-decodingencoding-on-bpi-m/)
  7. It seems I need to enable a cedar_dev at least. I've found the following in the kernel log: [ 1.915496] [cedar dev]: not installed! ve_mem_reserve=0 The questions are 1. What should I do to enable it 2. how to rebuild the kernel and replace it on the running machine or SD. I'm using the image built by myself. It was configured as Ubuntu server, kernel 3.4.
  8. I've tried to install some of the packages (xorg, libvdpau-sunxi1, etc) but was unable to make vdpauinfo work. Here is the log $ vdpauinfo debug1: client_input_channel_open: ctype x11 rchan 3 win 65536 max 16384 debug1: client_request_x11: request from ::1 42042 debug1: channel 1: new [x11] debug1: confirm x11 display: localhost:10.0 screen: 0 debug1: client_input_channel_open: ctype x11 rchan 4 win 65536 max 16384 debug1: client_request_x11: request from ::1 42043 debug1: channel 2: new [x11] debug1: confirm x11 debug1: channel 1: FORCE input drain debug1: channel 2: FORCE input drain Error creating VDPAU device: 25 debug1: channel 1: free: x11, nchannels 3 debug1: channel 2: free: x11, nchannels 2 Note that I was able to run xtrerm. I'm running ubuntu server, kernel 3.4.113 Did I miss something?
  9. Is the exact list of packages for X needed for vdpau already known?
  10. Actually I do not need a desktop. It looks like this acceleration somehow depends on X11. Does it mean it can only be used for HW-accelerated graphics (i.e. rendering on screen)? I need this functionality for surveillance system (ex. kerberos.io) and do not need to draw it on screen. Is it possible to install some packages for X11 to use acceleration?
  11. It looks like there is no hardware accelerated video decoding/encoding on the Banana PI M1 currently (on the server build). Is there any chance to enable it?