Skip to content

ffmpeg: HTTPS broken on macOS β€” relies on deprecated SecureTransport which can't negotiate with modern CDNsΒ #266437

@tonimelisma

Description

@tonimelisma

Summary

After the ffmpeg slim-down (PR #261303, Jan 14 2026), ffmpeg on macOS uses only Apple's SecureTransport for TLS. SecureTransport is deprecated by Apple (since macOS 10.15 Catalina in 2019) and does not support TLS 1.3. This means ffmpeg installed via Homebrew cannot negotiate TLS with a growing number of modern CDNs and servers on macOS.

This is a fundamental regression: any homebrew-core formula that uses ffmpeg for HTTPS streaming is silently broken on macOS.

The problem

SecureTransport's TLS Client Hello is rejected by major CDNs including Akamai. The error manifests as:

ffmpeg -i https://example-akamai-cdn.com/stream.m3u8
...
error: -9806 (errSSLClosedAbort)

This is not a configuration issue β€” SecureTransport is structurally incapable of connecting to servers that require or prefer TLS 1.3. Apple's own TLS engineer Christopher Wood confirmed SecureTransport does not support TLS 1.3 (curl/curl#4524). Apple deprecated SecureTransport in favor of Network.framework, which ffmpeg does not use.

The CDN industry is actively moving toward TLS 1.3 requirements. This problem will only get worse over time.

Impact on homebrew-core

yle-dl is a formula in homebrew-core that depends on ffmpeg to download HLS streams over HTTPS. Since the slim-down, yle-dl is completely broken on macOS β€” it cannot download anything because ffmpeg can't establish TLS connections to Yle's Akamai CDN.

Any other homebrew-core formula (current or future) that relies on ffmpeg for HTTPS network access is affected.

I attempted to fix this by changing yle-dl's dependency to ffmpeg-full (#266431), but that correctly failed CI β€” homebrew-core policy prohibits depending on ffmpeg-full.

Proposed fix

Add gnutls (or openssl) back to the standard ffmpeg formula as a TLS backend.

This is not a new or unusual dependency:

  • GnuTLS was in the ffmpeg formula for 7 years (Feb 2019 – Jan 2026) with no issues
  • When it was added (PR ffmpeg: GNU Transport Layer Security library req. added.Β #36803), maintainer @fxcoudert noted it was "not a heavy dependency" (~35MB)
  • ffmpeg currently has zero transitive gnutls dependencies, so adding it back adds only gnutls itself
  • The ffmpeg formula's own header comment states: "Only add dependencies required for dependents in homebrew-core or INCREDIBLY widely used and light codecs" β€” TLS qualifies on both counts

TLS is not a niche codec or obscure feature. It is fundamental network infrastructure. Without a working TLS implementation, ffmpeg on macOS cannot fetch any HTTPS URL β€” which in 2026 means it effectively cannot access the network at all.

References

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