Использование именованного канала в качестве входных данных ffmpeg/avconv для потоковой передачи

Использование именованного канала в качестве входных данных ffmpeg/avconv для потоковой передачи

Итак, я нахожусь в ситуации, когда мне нужно передать файл .wav (или другой тип звука) в именованный канал/FIFO и использовать канал в качестве входного источника ffmpeg (с каналом ffserver в качестве выходного).

Вот все, что я узнал (ffserver уже запущен и, я думаю, не имеет отношения к моей проблеме):

$ mkfifo аудио.wav

$ mplayer -ao pcm:file=audio.wav звуковой файл.wav &
[2] 30864
Символ `ff_codec_bmp_tags' имеет другой размер в общем объекте, рассмотрите возможность повторного связывания
MPlayer 1.0rc4-4.5.2 (C) 2000-2010 Команда MPlayer

[2]+ Остановлен mplayer -ao pcm:file=audio.wav soundfile.wav

$ avconv -f wav -i аудио.wav http://127.0.0.1:8090/feed1.ffm
avconv версия 0.8, Авторские права (c) 2000-2011 разработчики Libav
  построено 16 марта 2012 г. в 15:30:40 с помощью gcc 4.5.2

(Зависает здесь, больше ничего не выводит)

Однако ffmpeg в итоге застревает прямо там, процесс, по-видимому, завис, и не похоже, что ffmpeg что-либо делает, а конечный канал, похоже, неактивен. Предупреждение там, касающееся ff_codec_bmp_tags, также кажется не связанным.

Я прочитал несколько тем на форуме, в которых люди, похоже, добиваются успеха с чем-то очень близким к этому, но я полагаю, что я что-то делаю неправильно. Если кто-то может мне помочь, почему это происходит, я был бы очень признателен. Есть ли какой-то флаг, который я должен использовать, чтобы указать, что это FIFO, я использую источник?

Заранее спасибо.

решение1

mplayer хочет использовать ваш терминал, поэтому он останавливается в фоновом режиме ( [2]+ Stopped) и все блокируется. Я предлагаю использовать отдельные терминалы для программ. Либо просто обычные терминальные окна, либо через screenили tmux. Другой вариант — использовать nohup mplayer.

решение2

mplayer -noconsolecontrols -ao pcm:file=audio.wav soundfile.wav &

Связанный контент