Node-red-contrib-ffmpeg-spawn

That is expected and thank you for reporting it. i was trying to provide an overblown flow example of how much you could output beyond using the exec node. My original command to do this uses much less cpu load because I take advantage of the hardware acceleration in the pi4. I deliberately removed those ffmpeg flags because they would not be compatible for everybody that might try the flow.

If you now have support for hwaccel in ffmpeg, you could try adding -hwaccel rpi -c:v h264_mmal in front of the input -i, although i am not sure if your device supports that particular feature. If it does, then you would also have to modify the -vf output. I just tweaked my setting to get the same ouput, but reduces the cpu load from %65 to %25. This uses the gpu for decoding, but there is no hwaccel for encoding the jpeg, so that is still done on the cpu.

Edit. One thing to mention about hardware acceleration decoding is that there is a limit on the size input of the video W x H. I think most cannot handle an input greater that 1080p and unfortunately ffmpeg will fail without giving a good error to describe the problem. I discovered this by trial an error.

[{"id":"ac4cc611.cee8f8","type":"inject","z":"5967c855.68b978","name":"start args hwaccel","props":[{"p":"action","v":"{\"command\":\"start\",\"args\":[\"-loglevel\",\"error\",\"-nostats\",\"-f\",\"hls\",\"-http_multiple\",\"1\",\"-re\",\"-hwaccel\",\"rpi\",\"-c:v\",\"h264_mmal\",\"-i\",\"https://weather-lh.akamaihd.net/i/twc_1@92006/index_1200_av-p.m3u8?sd=10&rebase=on\",\"-c:v\",\"copy\",\"-c:a\",\"aac\",\"-f\",\"mp4\",\"-movflags\",\"+frag_keyframe+empty_moov+default_base_moof\",\"pipe:1\",\"-progress\",\"pipe:3\",\"-f\",\"image2pipe\",\"-vf\",\"fps=fps=1/2,scale=trunc(iw/4):-2\",\"-vsync\",\"vfr\",\"pipe:4\"]}","vt":"json"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":134,"y":88,"wires":[["93d74c4e.4c8fe"]]},{"id":"42cda3a1.8f558c","type":"inject","z":"5967c855.68b978","name":"start args","props":[{"p":"action","v":"{\"command\":\"start\",\"args\":[\"-loglevel\",\"error\",\"-nostats\",\"-f\",\"hls\",\"-http_multiple\",\"1\",\"-re\",\"-i\",\"https://weather-lh.akamaihd.net/i/twc_1@92006/index_1200_av-p.m3u8?sd=10&rebase=on\",\"-c:v\",\"copy\",\"-c:a\",\"aac\",\"-f\",\"mp4\",\"-movflags\",\"+frag_keyframe+empty_moov+default_base_moof\",\"pipe:1\",\"-progress\",\"pipe:3\",\"-f\",\"image2pipe\",\"-vf\",\"select='eq(pict_type,PICT_TYPE_I)',scale=trunc(iw/4):-2\",\"-vsync\",\"vfr\",\"pipe:4\"]}","vt":"json"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payloadType":"str","x":112,"y":186,"wires":[["93d74c4e.4c8fe"]]}]

Also, how are you getting the cpu load? Can I assume there is some node for that? Can it register the cpu load of a single process using its pid or is that for the entire system?

I cannot duplicate this error. I guess as the old line goes, "it works for me." But seriously, maybe I had pushed out a newer version and you didnt get the update on your system? Can you try to reinstall it. I made another change last night that automatically puts an empty array in the args settings dialog if you try to use empty string. This is because the typed input is looking for something that can be parsed as json, and if you leave it blank, you will automatically get a red border around the input.