Skip to content
This repository was archived by the owner on Dec 17, 2024. It is now read-only.
This repository was archived by the owner on Dec 17, 2024. It is now read-only.

Integrate Fmp4streamer for built in H264 HTML video #51

@ChaosBlades

Description

@ChaosBlades

Fmp4streamer streams your V4L2 camera directly to any browser and media player as H264 inside fragmented mp4. It is compatible with desktops and mobiles. You can add it your phone's home screen too!

https://github.com/soyersoyer/fmp4streamer

How does it work?

Fmp4streamer setups the V4L2 device, reads the H264 or MJPGH264 stream from it (or the YUYV, MJPG stream and converts to H264 with a M2M V4L2 device), adds MP4 header (fragmented mp4 - fmp4) and serves it via HTTP. On the browser side it works with only one html5 video tag, no js needed. It's pretty lightweight.

Did some testing with this and you can't use it directly loaded on FluidPi. All you get instead of video on the camera view is another instance of Fluidd no matter the port you use. I am able to view the stream loaded on FluidPi in a separate browser tab however. It has to be from a separate IP address and that way it works extremely well. No more bandwidth constraints trying to push a huge MJPG stream.

It also uses barely any CPU or Memory as all the heavy lifting is done on the GPU which we don't use anyways except maybe KlipperScreen. It is so light weight it works on the original Pi Zero.

You can view the specific capabilities of the attached cameras with v4l2-ctl --list-formats-ext

  • No additional dependencies were needed during testing.
  • Would need to work around issue of adding the camera to Fluidd from the same IP it is hosted from.
  • Provide documentation on Fluidd Wiki
  • Modify code to incorporate fmp4streamer.conf config file into the Fluidd config directory so that it can be edited from within the WebUI.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions