У меня есть требование для потоковой передачи содержимого аудиофайла, который постоянно обновляется с помощью ffmpeg, на другой компьютер в той же локальной сети. Я скачал ffmpeg статические сборки для Windows. Я понимаю способ указания IP-адреса и номера порта назначения в команде ‘ffmpeg’. Но я не могу понять, как указать имя файла для потоковой передачи. Как это сделать?
Нет никакого условия на формат аудиофайла. Это может быть любой формат.
WAV-файл — не лучший инструмент для буферизации закодированных данных для дальнейшей потоковой передачи.
Я бы предпочел использовать ffserver. Идея заключается в том, что ffmpeg кодирует поток и загружает его в «файл канала» ffserver, а клиенты (например, ваш «удаленный компьютер») получают поток (это может быть один и тот же поток в разных форматах) из ffserver по http или rtsp (rtp). ).
Просто добавьте туда аудиопоток, подключите ffmpeg к его каналу и подключите этот удаленный компьютер к потоку:
Определите отдельный поток в ffserver.conf:
<Stream audio.sdp>
Feed feed1.ffm
Format rtp
NoVideo
AudioCodec libmp3lame
AudioBitRate 64
AudioSampleRate 22050
</Stream>
или AVI (MPEGTS, FLV, что угодно)
<Stream audio.avi>
Feed feed1.ffm
Format avi
...
начать кодирование / загрузку аудио на сервер:
ffmpeg -i [Your source] http://localhost:[ffserver's port]/feed1.ffm
начните получать поток rtp (avi и т. д.) на этом «удаленном компьютере».
Других решений пока нет …