nextcloud / nextcloud/nextcloud-talk-recording

Migration to H264/MP4 for Hardware Acceleration

Open
#35 11 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
34
Forks
16
Avg merge
5d 5h
Merged PRs (30d)
4

Description

Hello!

I hope all's well on your end.

I have tried adjusting ffmpeg parameters in recording.conf to faciliate this but recording fails upon starting with the recorder object ending unexpectedly.

It's to my understanding that there might be a reason as to why a WebM/VP8 implementation was adopted in favor over H264/MP4, perhaps due to the virtual display libraries used? I'm not too sure on this myself honestly.

Is it possible to migrate from WebM/VP8 to a more traditional H264/MP4 format? I am keen on doing just that for better hardware acceleration support much like with Jellyfin and Frigate.

I am making do right now running the recording server on another device with the following ffmpeg config below, limiting CPU usage to 4 threads as to not max out processor usage.

[ffmpeg]
common = ffmpeg -loglevel level+warning -n -hwaccel vaapi -hwaccel_output_format vaapi
# outputaudio = -c:a libopus
outputvideo = -c:v libvpx -deadline:v realtime -crf 10 -b:v 1M -threads 4
extensionaudio = .ogg
extensionvideo = .webm

Server Specifications

  • S1 (Running Nextcloud AIO)
    • CPU: Intel i5-10210U (8) @ 4.200GHz
    • GPU: Intel CometLake-U GT2 [UHD Graphics]
    • Memory: 64GB
  • S2 (Recording server offloaded here)
    • CPU: AMD Ryzen 3 PRO 5350GE with Radeon Graphics (8) @ 3.600GHz
    • GPU: AMD ATI Radeon Vega Series / Radeon Vega Mobile Series
    • Memory: 64GB

Thank you for looking into this! Would appreciate any leads if any are possible.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing recording.conf and the supplied ffmpeg configuration, then trace how the recorder object starts and exits unexpectedly. Reproduce the failure with the proposed H264/MP4 settings and determine the scope needed for hardware-accelerated output; done means a documented, working migration or a clear compatibility limitation.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
audio-video-rtc, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.