Я пытаюсь установить заголовки (, как предлагается здесь ) для моей команды ffmpeg concat
следующим образом:
ffmpeg \
-f concat \
-safe 0 \
-protocol_whitelist file,http,https,tcp,tls \
-headers $'Content-Type: audio/wav\r\n' \
-i 'inputs.txt' \
-c 'copy' 'output.wav' \
-v trace
, где мой входной файл структурирован так:
file 'https://path/to/file1'
file 'https://path/to/file2'
file 'https://path/to/file3'
Однако, когда я запускаю команду, ffmpeg не устанавливает заголовки, как видно из вывода -v:
[http @ 0x7fa133d01080] request: GET / HTTP/1.1
User-Agent: Lavf/58.20.100
Accept: */*
Range: bytes=0-
Connection: close
Host: localhost:3001
Icy-MetaData: 1
Что странно, если я задаю свой вводне через ввод txt, а через -i /path/to file
(как видно ниже) он работает просто отлично.
ffmpeg \
-f concat \
-safe 0 \
-protocol_whitelist file,http,https,tcp,tls \
-headers $'Content-Type: audio/wav\r\n' \
-i 'https://google.com' \
-c 'copy' 'output.wav' \
-v trace
Вывод -v:
[https @ 0x7fed3ac03940] request: GET / HTTP/1.1
User-Agent: Lavf/58.20.100
Accept: */*
Range: bytes=0-
Connection: close
Host: google.com
Icy-MetaData: 1
Content-Type: audio/wav
Не уверен, зачем читать входные данныечерез файл будет влиять на отправку заголовков.В настоящее время обходной путь - использовать строку, объединяющую все входные данные (немного сложнее, чем хотелось бы), но мне любопытно, если кто-нибудь может знать, почему это происходит.
ОБНОВЛЕНИЕ : Согласно этой записи я должен читать входные данные через текстовый файл, поэтому я возвращаюсь к исходной точке ....