
Итак, я нахожусь в ситуации, когда мне нужно передать файл .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 &