gozoinks / homebridge-camera-ffmpeg-ufv

UniFi Video plugin for Homebridge
https://www.npmjs.com/package/homebridge-camera-ffmpeg-ufv
Other
76 stars 20 forks source link

Adds support for hardware-accelerated video encoding #30

Open timothybasanov opened 5 years ago

timothybasanov commented 5 years ago

To enable hardware-accelerated video encoding add a new config option: "vaapiDevice": "/dev/dri/renderD128" (Intel CPU example). This would pass a new set of options to ffmpeg: -hwaccel vaapi -hwaccel_output_format vaapi -vaapi_device /dev/dri/renderD128 and it would replace -c:v libx264 -vf scale=1280:720 -threads 0 -tune zerolatency with -c:v h264_vaapi -vf format=nv12|vaapi,hwupload,scale_vaapi=w=720:h=480 -threads 1

Verified to work on Synology NAS DS718+ within Docker environment. More details https://timothybasanov.com/2018/12/08/hardware-accelerated-h264-encoding-synology-nas.html Gotchas: One needs to correctly pass devs into docker and give access to a Homebridge's user.

Additional changes:

timothybasanov commented 5 years ago

I intentionally did not update README, this is a beta feature and I want advanced users to try it first. Not sure how testing is done for this GitHub repo. Hope you can guide me.

jmbwell commented 5 years ago

I’m interested in this. I wish we didn’t have to know in advance what device provides DRM for vaapi. I don’t know much about probing for hardware acceleration capabilities. Is there a way to have ffmpeg do the right thing on any system, or are we going to be dependent on configuration, or what?

glan commented 5 years ago

Nice! I just about to buy a DS718+. A factor for that model was the possiblity of using hardware acceleration for homebridge-camera-ffmpeg feeds (something that more expensive Atom models lack). So I wondering if a simular change in that project should be made too. I might take a look once I have my device.

pashdown commented 4 years ago

Would be nice to see this merged. I'd also suggest being able to define scale_vaapi.

malhal commented 4 years ago

How about committing to the original repo instead of this forked one? So hardware encoding can be used on a Synology for any camera.

NiccoStar86 commented 4 years ago

Hi everybody, any updates about this useful functionality? Any idea when Homebridge will support the hardware encoding for the cameras? Thank you!

timothybasanov commented 4 years ago

Hey, I've originally created this PR. I would not be able to update this PR anymore. It would be really nice if somebody would take initiative and merge it either here or upstream. I'm grateful in advance.