Transcoding problems

ffmpeg causes cpu on my dvr box to go to 100% when i use iphone to watch tv remotely - and the feed just lags every few seconds. Enabling HEVC transcoding in settings -> advanced -> experimental fixes the issue (low cpu + iphone feed is happy).

However when I enable the HEVC, a remote TV with a fireTV4k can't view the feed at all.

channels 2025.10.21.1818 on devuan/x64. transcoder set to hardware, debug info here

without hevc, ffmpeg is called like

dvr1$ ps -ef | Grep ffm
root     27388 26279  2 20:06 ?        00:00:00 /home/dvr1/channels-dvr/2025.10.21.1818/ffmpeg -hide_banner -nostats -loglevel warning -progress http://127.0.0.1:8089/hls/progress?key=ch29.1-dANY-ip192.168.1.1-remux -fflags discardcorrupt+genpts -f mpegts -probesize 8000000 -i - -enc_time_base -1 -max_muxing_queue_size 4096 -muxdelay 0 -map 0:v:0? -map 0:a? -ignore_unknown -map 0:s? -c:v copy -c:a copy -c:s copy -f hls -hls_time 1.000000 -hls_list_size 3600 -hls_delete_threshold 1 -hls_flags temp_file+delete_segments -start_number 1 -hls_passthrough_subtitles 1 /home/usb0/channels-data/Streaming/sessions/ch29.1-dANY-ip192.168.1.1-2883462901/remux/stream.m3u8
root     27394 26279 33 20:06 ?        00:00:06 /home/dvr1/channels-dvr/2025.10.21.1818/ffmpeg -hide_banner -nostats -loglevel warning -hwaccel vaapi -hwaccel_output_format vaapi -noautorotate -progress http://127.0.0.1:8089/hls/progress?key=ch29.1-dANY-ip192.168.1.1-1-h264-aac-copy--7488-256-720-6-0--hardware-false-false-0.01-0 -fflags discardcorrupt+genpts -f mpegts -copyts -probesize 8000000 -i - -enc_time_base -1 -max_muxing_queue_size 4096 -muxdelay 0 -map 0:v:0? -map 0:a? -ignore_unknown -map 0:s? -c:v h264_vaapi -g:v 60 -force_key_frames:v source -noautoscale -color_range tv -init_hw_device vaapi=intel:/dev/dri/renderD128 -filter_hw_device intel -bsf:v h264_mp4toannexb -profile:v 100 -filter:v format=nv12|vaapi,hwupload,deinterlace_vaapi=auto=1,scale_vaapi=-2:min(ih\,720):format=nv12 -b:v 7488k -minrate 6739k -maxrate 8236k -bufsize 14976k -c:a aac -ac 6 -b:a 256k -filter:a aresample=async=1 -c:s copy -f hls -hls_time 0.010000 -hls_list_size 360000 -hls_delete_threshold 1 -hls_flags temp_file+delete_segments -start_number 1 -hls_passthrough_subtitles 1 /home/usb0/channels-data/Streaming/sessions/ch29.1-dANY-ip192.168.1.1-2883462901/encoder-1-1467164479/stream.m3u8

Can I get a hand figuring out why cpu is going to 100% with iphone remotely and not hevc, or else can I enter a feature request to set transcoding method on a client-by-client basis (so i can pin the iphone to hevc)

Please go to Support -> Troubleshooting -> Submit Diagnostic Logs from the web interface of the DVR and let us know when it's been submitted so we can have a better idea of what was going on.

4e081f3e-b742-4d5a-9853-fa341134c4ec

Which channel were you watching when you had this CPU issue when using H.264?

29.1 and 129.1

Is your computer really running an Intel Haswell chip?

yep. its an elitedesk 800 G1 with i5-4590T

I'm sure Eric will have a proper answer for you, but using a 12 to 13 year old CPU will limit what can be encoded and decoded with the iGPU and fall back to software transcoding which might be what is causing the 100% CPU usage.

1 Like

The 129.1 ATSC3 channel is already HEVC so it could be why it’s able to send that without actually transcoding when you enable HEVC.

Please try the non-ATSC3 29.1 channel and then submit diagnostics again if it still exhibits the issue.

1 Like

Separately, if you could upload “NFL Football Chicago Bears at Baltimor 2025-10-26-1259.mpg” to us that would be helpful in tracking down another issue:

https://www.dropbox.com/request/MMjICRc053JJpSBPDIfQ

done

actually 129.1 wont play on the iphone at all when remote (i didnt realize there was a behavior difference until i paid closer attention).

there's just a constant spinny circle on the channels app when trying to watch remote -- without hevc ffmpeg stays at 100% and with hevc, channels-dvr is ~13% and ffmpeg at ~2%.-- but always just spinny circle and no video/audio.

172ac095-4486-4472-a73a-17a99c2b9b73

for 29.1, i changed the Deinterlacer to Hardware which calms down ffmpeg to 35% cpu and the iphone can watch the feed without hevc.

c283185a-64c3-4f2b-868b-90771992ada3