ffmpeg/avconv에 대한 입력으로 명명된 파이프를 사용하여 스트리밍

ffmpeg/avconv에 대한 입력으로 명명된 파이프를 사용하여 스트리밍

그래서 .wav(또는 다른 유형의 사운드) 파일을 명명된 파이프/FIFO에 공급하고 해당 파이프를 ffmpeg의 입력 소스로 사용하고 싶습니다(ffserver 피드를 출력으로 사용).

내가 아는 한(ffserver가 이미 실행 중이며 내 문제와 관련이 없다고 생각합니다):

$ mkfifo 오디오.wav

$ mplayer -ao pcm:file=audio.wav soundfile.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 audio.wav http://127.0.0.1:8090/feed1.ffm
avconv 버전 0.8, 저작권 (c) 2000-2011 Libav 개발자
  gcc 4.5.2를 사용하여 2012-03-16 15:30:40에 구축되었습니다.

(여기서 기다리면 아무것도 출력되지 않습니다)

그러나 ffmpeg는 거기에 멈춰 있고 프로세스가 중단된 것처럼 보이며 ffmpeg는 아무 작업도 수행하지 않는 것 같으며 결국 피드가 비활성화된 것 같습니다. ff_codec_bmp_tags와 관련된 경고도 관련이 없는 것 같습니다.

나는 사람들이 이것에 매우 가까운 것으로 성공한 것처럼 보이는 몇 가지 포럼 게시물을 읽었지만 내가 뭔가 잘못하고 있는 것 같습니다. 왜 이런 일이 일어나는지 설명하는 데 도움을 줄 수 있는 사람이 있다면 매우 감사하겠습니다. 사용 중인 소스가 FIFO임을 나타내기 위해 사용해야 하는 플래그가 있습니까?

미리 감사드립니다.

답변1

[2]+ Stoppedmplayer는 터미널을 사용하기를 원하므로 백그라운드에서 stop()하고 모든 것을 차단합니다. 귀하의 프로그램에 별도의 터미널을 사용하는 것이 좋습니다. 일반 터미널 창이나 screen또는 tmux. 또 다른 옵션은 를 사용하는 것입니다 nohup mplayer.

답변2

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

관련 정보