H.264 frequently (but not every time) fails on Safari, reliably works in other browsers
Subject says it all. Safari on Mac can almost never use H.264, giving this error message:
TinyPilot failed to stream video output from your target device using H.264 compression.
See "System" > "Logs" for diagnostic details.
Refreshing the page or restarting your device may fix the issue.
Logs are at https://logs.tinypilotkvm.com/GZlHhJns for viewing. Reliably works on other browsers, but Safari is my main browser and I'd really like to be able to use TinyPilot there!
- 5 replies
Hi @nougatmachine, I'm sorry that you're having H.264 reliability issues on Safari.
And thanks for sharing those logs. It looks like TinyPilot's video streaming service may not be running correctly - but I'll need to look into this some more to say for sure.
In the meantime, can you share a few more details about your setup - like your Safari version (go to to Safari menu and click 'About Safari'), and your MacOS version (in the Apple menu click 'About this Mac')?
Finally, is your TinyPilot local or remote (via Tailscale or similar)?
I'm doing some of both; can't say I notice any difference in particular when local or remote. I use Tailscale when I am remote, though.
Safari: Version 16.4 (186184.108.40.206.23)
macOS: 13.3.1 (22E261)
I think these are the very latest versions of both.
Thanks for the details @nougatmachine! I haven't been able to re-produce this on my devices. However, I seem to have a different version of Safari (16.3).
Are you running any extensions on Safari that might be interacting with sound / video / other content on sites?
No, no browser extensions that would affect media. I do have one browser extension that shouldn't matter, but I turned it off just to be safe and saw no difference in the results.
However, I do have one bit of new data that I think will be useful. It didn't occur to me to compare until last night, so this is preliminary, but it appears the key to the puzzle here is that H.264 is working on Safari on the local network, but not remotely via Tailscale. What might cause this, I am not sure, but I think this is reliably the case. Will keep checking and make a note of it if it turns out to be wrong, but I am rather confident.
Other browsers are able to use the H.264 stream via Tailscale, too. So this does seem to be something with my setup and Safari.
I'm not 100% sure why this is a Safari-only issue over Tailscale. I would expect similar behavior on other browsers.
The only thing I can think of is that Safari has some WebRTC settings in the "Develop" menu which might impact H.264. There are some under the "WebRTC" sub-menu, and some in the "Experimental Features" sub-menu. If you can see the "Develop" menu on Safari, it might be worth checking whether you've toggled any settings related to that.
"Experimental Features" has a reset to defaults option. While the WebRTC menu on my machine has all of the options unchecked.