HLS & Nostr

Sats McRyan

npub1m64hnkh6rs47fd9x6wk2zdtmdj4qkazt734d22d94ery9zzhne5qw9uaks

hex

58c36acc34462da6ddf2f28f0377284022de27fb8548cf5971b191dcaee3e9ff

nevent

nevent1qqs93sm2es6yvtdxmhe09rcrwu5yqgk7ylac2jx0t9cmrywu4m37nlcprpmhxue69uhhyetvv9ujuem4d36kwatvw5hx6mm9qgsda2memtapc2lykjnd8t9px4ake2stw39lg6k49xj6u3jz3pteu6qew5gp3

Kind-1 (TextNote)

2026-04-12T16:50:55Z

HLS & Nostr

My initial testing of using blossom as a backend for storing video segments & playlists has been successful, testing single resolution streams packaged as fMP4 segments.

The next step will be variable bandwidth streams so video can be flexible depending on the users connection speed. FFmpeg makes this easy by creating the video segments & playlists, only requiring me to map the Blossom hash to the playlist entries after they are uploaded.

Future plans:

  • a native Android app, using nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx LCe library for compression & segmenting. Likely best for shorter videos due to hardware constraints.

  • a command line app depending on ffmpeg & nak, useful for larger uploads with access to more powerful hardware & GPU acceleration.

I would like input from blossom server providers. With the segmenting aspect of this it will sidestep file size upload limits. I wonder though if the possible bandwidth savings would make this worth it, vs users uploading huge MP4 files and serving them with no optimization?

Raw JSON

{
  "kind": 1,
  "id": "58c36acc34462da6ddf2f28f0377284022de27fb8548cf5971b191dcaee3e9ff",
  "pubkey": "deab79dafa1c2be4b4a6d3aca1357b6caa0b744bf46ad529a5ae464288579e68",
  "created_at": 1776012655,
  "tags": [
    [
      "alt",
      "A short note: HLS \u0026 Nostr\n\nMy initial testing of using blossom a..."
    ],
    [
      "p",
      "ca89cb11f1c75d5b6622268ff43d2288ea8b2cb5b9aa996ff9ff704fc904b78b",
      "wss://nostr.mom/"
    ],
    [
      "client",
      "Amethyst"
    ]
  ],
  "content": "HLS \u0026 Nostr\n\nMy initial testing of using blossom as a backend for storing video segments \u0026 playlists has been successful, testing single resolution streams packaged as fMP4 segments. \n\nThe next step will be variable bandwidth streams so video can be flexible depending on the users connection speed. FFmpeg makes this easy by creating the video segments \u0026 playlists, only requiring me to map the Blossom hash to the playlist entries after they are uploaded.\n\nFuture plans:\n\n- a native Android app, using nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx  LCe library for compression \u0026 segmenting. Likely best for shorter videos due to hardware constraints.\n\n- a command line app depending on ffmpeg \u0026 nak, useful for larger uploads with access to more powerful hardware \u0026 GPU acceleration.\n\nI would like input from blossom server providers. With the segmenting aspect of this it will sidestep file size upload limits. I wonder though if the possible bandwidth savings would make this worth it, vs users uploading huge MP4 files and serving them with no optimization?\n\n",
  "sig": "5f7fe1882015324ee5492b252fd04cf2202bd9184c2c394784891d7b64317a5b95822c6aa53357ec9beade8116b6d5bce31096bcc63574194b1059a8e7fe5b07"
}