Issues while experimenting with node-red-contrib-ui-mp4frag

Hi folks,

I started playing with the node-red-contrib-ui-mp4frag node of @kevinGodell, but I have a few beginner issues:

  1. When I try the example flow from the readme page, the "France 24 News" stream does not start playing:

    mp4frag_ui_ready

    First I thought that I might have setup something incorrect, but I "think" that the stream is down. Because I see this in my dashboard browser console log:

    Can somebody please confirm this?

  2. So I tried to find another public stream. The "Big Buck Bunny" stream (from this page) seems to work. But when I try the "Teers of steel" stream (from that same page), I get this in the console log:

    I am now wondering if there will also be CORS policies issues when I will (later on) start creating m3u8 playlist file of my own camera's. Am I correct that this won't be a problem, since those playlists are being served via the same base path as the Node-RED dashboard. Because in that case there won't be any cross references ...

    P.S. I assume the "Big Buck Bunny" stream works fine, because it responses with the following header:

    image

  3. From time to time I see these warnings in my browser console log:

    Is that a problem, or can I ignore that?

  4. I installed both mp4 frag nodes from Github, but they didn't became visible in my flow editor palette. After a while I saw (via "Manage palette") that there was an issue:

    image

    And indeed there had been a warning logged when I had installed the mp4 fragment node:

    npm WARN node-red-contrib-mp4frag@0.1.0-beta.5 requires a peer of socket.io@2 || 3 || 4 but none is installed. You must install peer dependencies yourself.

    After I installed the latest dashboard (3.0.4 with the socket.io update), those problems were solved automatically and both nodes became visible in the palette. I can understand the UI node requires the dashboard. But the other (non-ui) mp4 fragment node can also be used by folks that don't use the Node-RED dashboard. Do they need to install socket.io manually as a prerequisite? If so, that should perhaps be mentioned in the readme page.

Thanks !!!!
Bart

Seems indeed that there is no problem to watch the same "Teers of steel" stream, when I capture that same stream with ffmpeg and then stream if (via the node-red-contrib-mp4frag) node and fetch if by the node-red-contrib-ui-mp4frag node on my dashboard. So question 2 is answered already....

You know me, I am not good with updating readme files. i should probably empty the file so that it is not keeping stale info.

it will not be an issue. Somebody probably noticed that those video streams were being accessed a little too much and tightened the access restrictions a little. But of course, the CORS thing is easily bypassed on the server side, since it is your browser that is trying to follow the headers from the server and keep you from being a bad boy.

There used to be many, many more. i have slowly removed some debugging info as it has become more stable, but I still suggest using anything other than the socket_io player. It became too much of an issue trying to keep track of the ever-changing socket. io versions and its feature changes while maintaining various browser compatibility.

Are you planning on using it anytime soon without having the dashboard? I was waiting for somebody to ask, but it seems that everybody uses node-red-dashboard that is using my nodes, so I haven't made the planned changes because it would require a big rewrite of the node. Although, I did rewrite the http routes recently in anticipation of the changes.

The plan is that the serving of hls.m3u8, video.mp4, and socket_io should each be an option in the node to turn on or off. socket_io will also become an optional dependency instead of a peer dependency. It is possible to have a need to use node-red-contrib-mp4frag without ever hosting the video. It can be used to just output the buffer on the 2nd output, along with some other undocumented things that I am working on.

@kevinGodell : Thanks for your time to post feedback !

No no. I was just wondering that you should perhaps add a warning to your readme, that socket.io should be installed manually if no Node-RED dashboard has been installed. It was only a tip :wink: