나중에 시간 이동을 통해 재생할 수 있도록 스크립트에 오디오를 녹음하고 있습니다.
스크립트는 스트림이 아직 활성 상태인지 주기적으로 확인합니다. 때때로 라이브 방송 스트림이 중단됩니다. 이 경우 새 덤프 파일에서 녹음을 다시 시작하고 싶습니다.
실제 녹음은 mplayer를 사용하여 수행됩니다.
/usr/bin/mplayer -novideo -dumpaudio http://194.232.200.147:8000 -dumpfile orf_salzburg_1566868130-1566868130.mp3
주기적으로 파일 크기를 확인하여 스트림이 여전히 활성 상태인지 확인합니다. 증가가 멈추자 다시 녹음을 시작했습니다.
이 버전의 mplayer는 오래된 Debian 시스템에서 잘 작동합니다:
MPlayer svn r34540 (Debian), built with gcc-4.7 (C) 2000-2012 MPlayer Team
이제 이 버전을 사용하여 새 컴퓨터에서 개발을 진행하고 있습니다.
MPlayer 1.3.0 (Debian), built with gcc-6.2.1 (C) 2000-2016 MPlayer Team
이전 버전은 즉시 파일에 기록됩니다. 100ms마다 쓰기를 위해 파일을 쿼리하면 파일 크기가 100ms마다 증가하는 것을 볼 수 있습니다.
그러나 새로운 mplayer 버전에서는 파일이 256kbyte 청크로 기록됩니다. 파일 크기가 증가하는 데 최대 16초가 걸릴 수 있습니다.
이상하게도 새로운 mplayer조차도 명령줄에 기록되는 연속 바이트 수를 보고합니다. 그러나 실제로는 op 256k 블록에만 있습니다.
나는 이 문제가 mplayer의 ffmpeg 라이브러리를 사용하여 발생한다고 생각합니다. FFmpeg는 256kbyte마다 새로 고쳐집니다. 그러나 ffmpeg에는 출력을 새로 고치는 옵션이 있습니다. 그것은 보이는 것처럼 mplayer에 없습니다.
파일 크기 증가를 확인하기 위해 스크립트에서 기간을 변경하는 것은 쉽습니다. 그런데 20~30초로 변경하면 스트리밍이 중단되면 오디오가 많이 손실됩니다.
mplayer를 원래 동작으로 복원하는 방법에 대한 제안 사항이 있습니까?