Esta é uma elaboração sobre a resposta de heavyd, mais do que qualquer outra coisa. Com base na sua resposta, aqui está o que acabei fazendo na minha configuração do Apache:
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so
...
<Proxy *>
Allow from all
</Proxy>
ProxyPassMatch ^/cams/noauth/([-a-z]*)/(.*)$ http://$1-cam/$2
<LocationMatch "/cams/noauth/">
RequestHeader set Authorization "Basic dXNlcmlkOnBhc3N3ZA=="
</LocationMatch>
Isso faz com que qualquer solicitação para http://mylinuxbox/cams/noauth/LOCATION/WHATEVER
inverta o proxy para http://LOCATION-cam/WHATEVER
, e o cabeçalho de Autorização apropriado será enviado.
Uma ressalva que descobri durante isso: os navegadores geralmente têm um limite de quantas solicitações simultâneas eles enviarão para um único host. Com o Chrome, o limite passa a ser 6. O Firefox tem um limite padrão semelhante, embora possa ser ajustado em about: config. Como todas as câmeras parecem vir de um único host, e como elas "transmitem" mantendo a conexão aberta, apenas as primeiras poucas câmeras em uma única página serão exibidas, e as imagens restantes ficarão bloqueadas esperando que as outras câmeras terminem. (o que nunca acontece).
Uma solução possível seria usar hosts virtuais, subdomínios ou talvez até portas adicionais para fazer com que o servidor único pareça ser vários servidores.