ogg/vorbis 데이터를 동적으로 추가하는 방법은 무엇입니까?

ogg/vorbis 데이터를 동적으로 추가하는 방법은 무엇입니까?

아이스캐스트를 기반으로 온라인 방송을 진행하고 있습니다. 트랙 등을 유연하게 정리할 수 있도록 소스 코드 클라이언트를 직접 작성했습니다. 라디오에서 트랙을 재생하기 위해 Python 코드에서 2개의 하위 프로세스를 실행합니다. ffmpeg는 파일을 디스크에서 WAV로 디코딩한 다음 oggenc로 인코딩된 출력을 리디렉션합니다. 각 트랙에 대해 다음과 같습니다.

ffmpeg -i foo_bar.mp3 -acodec pcm_s16le -ac 2 -f wav pipe:1 | oggenc - -b 128 --managed -o -

재생할 새 트랙이 나올 때까지는 정상적으로 작동합니다. 때때로 플레이어가 이상하게 행동하기 시작합니다. 예를 들어 mplayer가 멈추고 종료되고, vlc가 속도를 변경하고 소름 끼치는 소리를 내기 시작할 수 있습니다.

가장 간단한 해결책은 oggenc를 영원히 실행하고 stdin에서 읽는 파형을 대체하는 것입니다. 그러나 덜 까다로운 방법으로 이를 수행하는 방법을 모르겠습니다. 소스 클라이언트의 안정성에 영향을 미치므로 여기서는 복잡한 문제를 피하고 싶습니다. 어떻게 생각하나요?

감사해요

관련 정보