The screen stayed black. Then the logs poured in, line after line, like rain against glass. The culprit was buried in a single flag: -protocol_whitelist file,pipe,grpc.
That’s how I learned the hard way about ffmpeg, grpc, and the power—and confusion—of the -protocol_whitelist prefix. If you’ve ever tried to feed gRPC streams into ffmpeg without it, you know the breakage: protocol not found, connection refused, handshake failures. All because ffmpeg locked the door on non-whitelisted protocols by default.
To make ffmpeg process gRPC data, the grpcs prefix is critical. It signals secure gRPC over TLS, letting your pipeline trust and process inbound encrypted streams. Without the grpcs prefix in your URI—grpcs://hostname:port/resource—ffmpeg will either default to insecure gRPC or reject the protocol outright. It’s not a cosmetic flag; it's authorization at the transport level.
The magic happens when the grpcs prefix meets correct compile-time support. That means your ffmpeg build must include grpc protocol handling and link against the right gRPC libraries. Once dependencies are baked in, the command is direct: