I want to configure a local webcam to stream (and possibly record) a live feed open to the internet, and acess it half-world away while traveling, using FOSS only acessing it via Android VLC

This guide was quite comprehensive; however the packages for nginx-rtmp are quite abandoned in arch linux. So I thought maybe WebRTC could be an alternative - the communication itself should be encrypted, which WebRTC seems to do; however, I still can’t figure out if VLC will handle this well

Also, it seems that I might need to self-host a VPN to achieve this? What are my options? Has anyone else done this ?

  • vegetaaaaaaa@lemmy.world
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    11 months ago

    I recently set up a personal Owncast instance on my home server, it should do what you’re looking for. I use OBS Studio to stream random stuff to friends, if your webcam can send RTMP streams it should be able to stream to Owncast without OBS in the middle - else, you just need to set up OBS to capture from the camera and stream to Owncast over RTMP.

    the communication itself should be encrypted

    I suggest having the camera/OBS and Owncast on the same local network as RTMP is unencrypted and could possibly be intercepted between the source and the Owncast server, so make sure it happens over a reasonably “trusted” network. From there, my reverse proxy (apache) serves the owncast instance to the Internet over HTTPS (using let’s encrypt or self-signed certs), so it is encrypted between the server and clients. You can watch the stream from any web browser, or use another player such as VLC pointing to the correct stream address [1]

    it seems that I might need to self-host a VPN to achieve this

    Owncast itself offers no authentication mechanism to watch the stream, so if you expose this to the internet directly and don’t want it public, you’d have to implement authentication at the reverse proxy level (HTTP Basic auth), or as you said you may set up a VPN server (I use wireguard) on the same machine as the Owncast instance and only expose the instance to the VPN network range (with the VPN providing the authentication layer). If you go for a VPN between your phone and owncast server, there’s also no real need to setup HTTPS at the reverseproxy level (as the VPN already provides encryption)

    Of course you should also forward the correct ports (VPN or HTTPS) from your home/ISP router to the server on your LAN.

    There are also dedicated video surveillance solutions.

  • Decronym@lemmy.decronym.xyzB
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    11 months ago

    Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:

    Fewer Letters More Letters
    HTTP Hypertext Transfer Protocol, the Web
    HTTPS HTTP over SSL
    SSL Secure Sockets Layer, for transparent encryption
    VPN Virtual Private Network

    3 acronyms in this thread; the most compressed thread commented on today has 5 acronyms.

    [Thread #402 for this sub, first seen 5th Jan 2024, 02:35] [FAQ] [Full list] [Contact] [Source code]

  • Feliberto@programming.dev
    link
    fedilink
    English
    arrow-up
    2
    ·
    11 months ago

    I’m using Frigate with a Google Coral connected to Home Assistant, it’d send an image and a short video to a Telegram group with my wife whenever it detects a person.

    I’m using OpenIPC firmware flashed on a chinese Goke camera and works great. It connects to Frigate using RTMP.

  • equidamoid@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    11 months ago

    I’d go for HLS due to its simplicity: just files over http(s). VPN or not - depends on your network. If your machine is accessible from the internet, just putting the files into a webserver subdirectory with a long random path and using https will be secure enough for the usecase. Can be done with an ffmpeg oneliner.

    The downside of HLS is the lag (practically – 10s or more, maybe 5 if you squeeze it hard). It is in no way realtime. Webrtc does it better (and other things too), but it is also a bigger pain to set up and forward.

    Also, just in case, test that the webcam works fine if left active 24/7. I had (a cheapo) one that required a powercycle after a week or so…

  • BearOfaTime@lemm.ee
    link
    fedilink
    English
    arrow-up
    1
    ·
    11 months ago

    Setup Tailscale on your machine at home and on your Android device. It’ll provide a virtual encrypted network between your devices.

    Not sure what video performance across it will be like, I’m sure there’s a bit of overhead.