2013-09-23 4 views
1

У меня есть требование для потока содержимого аудиофайла, который постоянно обновляется с использованием ffmpeg на другом компьютере в той же локальной сети. Я загрузил статические сборки ffmpeg для Windows. Я понимаю способ указать IP-адрес назначения и номер порта в команде «ffmpeg». Но я не могу понять, как указать имя файла, которое должно быть потоковым. Как это сделать?Аудио поток из файла с помощью ffmpeg

В формате аудиофайла нет условий. Он может быть любого формата.

+0

Можете ли вы объяснить, как вы используете FFMPEG для потоковой передачи? Покажите нам команду, которую вы имеете до сих пор? – Brad

+0

Я использовал команду "ffmpeg -re -f lavfi -i aevalsrc =" sin (400 * 2 * PI * t) "-ar 8000 -f mulaw -f rtp rtp: //10.14.35.23: 1234" для потоковой передачи на Отправитель. Для воспроизведения полученных данных я использовал «ffplay rtp: //10.14.35.24: 1234». Это должно было генерировать аудио, а затем отправлять. Что делать, если у меня уже есть аудиофайл (не обязательно WAV-файл)? Как его переправить? – Vigo

ответ

1

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, и т.д.) поток на этом "удаленный компьютер".

+0

Спасибо за усилия по предоставлению фрагмента кода. Могу ли я не передавать его с помощью статических построений ffmpeg? Итак, здесь audio.avi - это имя файла, и мне нужно просто добавить этот сегмент в ffserver.conf и получить потоковое воспроизведение аудиофайла? – Vigo

Смежные вопросы