I continued testing and found more details.
My setup:
Ubuntu 26.04 LTS
TVHeadend 4.3-2722g8ddfe2793
TurboSight TBS 6909X Octa DVB-S/S2/S2X
DVB-S satellite FTA channels
Initial problem:
Channels scan correctly.
Services are mapped correctly.
FTA channels contain valid video/audio PIDs.
Kodi HTSP client plays channels correctly.
PASS stream profile is enabled and set as default.
HTTP Play URL from TVHeadend does not play in VLC/browser.
Additional tests:
Kodi HTSP test
Installed Kodi with Tvheadend HTSP Client.
Connected to TVHeadend using HTSP port 9982.
Channels load correctly.
Live TV works normally.
This confirms the DVB input and TVHeadend backend are working.
HTTP stream authentication test
Using curl:
curl -v "http://192.168.18.187:9981/play/ticket/stream/service/..."
Initially returns:
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Digest realm="tvheadend"
Using Digest authentication:
curl --digest -u ROOTSLR:"password" "stream URL" -o test.ts
returns:
HTTP/1.1 200 OK
Content-Type: video/mp2t
Saved stream playback test
The stream was saved successfully:
-rw-rw-r-- 1 s2a s2a 7.7M test.ts
Opening the saved file:
vlc test.ts
plays correctly with both video and audio.
Direct VLC live playback
Trying the live authenticated URL directly in VLC:
http://ROOTSLR:password@192.168.18.187:9981/play/ticket/stream/service/...
does not start playback.
No useful error appears in VLC.
Conclusion:
TVHeadend is generating a valid MPEGTS stream and authentication works. The issue appears to be specifically related to live HTTP playback handling in VLC/browser with TVHeadend Digest authentication or ticket streaming.
Any suggestions on debugging the HTTP live playback path would be appreciated.