Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feat] 한명 오디오 녹음기능 구현 #337

Closed
wants to merge 14 commits into from

Conversation

begong313
Copy link
Collaborator

@begong313 begong313 commented Dec 1, 2024

관련 이슈 번호

작업 내용

  • 1인 음성녹음 기능 추가
  • start,stop,pause,resume
  • 방번호_${Date.now}로 파일생성됩니다

PR 포인트

  • ffmpeg을 설치해야 정상적으로 동작합니다.
brew install ffmpeg
  • 기존의 코드에 최대한 영향이 없게 녹음 기능을 분리해놓았습니다.
  • transport 생성, consumer 생성 등 함수를 구현해두었습니다. 추후 리팩토링이 필요합니다. 현재는 충돌이나 실행이 안될까봐 기존의 코드는 바꾸지 않았습니다.
    • issue 하나 생성해서 refactoring 대대적으로 하는것이 좋을 것 같습니다.

환경변수 업데이트 되었습니다

  • 녹음 기능을 사용하지 않는다면 추가하지 않아도 정상적으로 실행됩니다.

고민과 학습내용

ffmpeg프로세스 잔여작업 존재함에도 process가 삭제되던 문제

  • 녹음이 다 되지 않은 체 ffmpeg 프로세스가 종료되던 버그가 있었습니다.
  • process.kill('sigint')로 프로세스를 종료시켰는데도, 비정상적으로 프로세스가 종료되었습니다.
  • 아무리 sigint로 kill 시그널을 보내도 중복해서 2번이상 보내면 프로세스가 하던작업을 완료하지 못한 체 종료된다고 합니다
  • transportclose이벤트에서도 kill 시그널을 보내고, 방이 터질때도 killSignal을 보내서 생기던 문제였습니다.
  • 종료로직을 한곳에서만 처리하게 변경하여 중복으로 종료시그널을 보내던것을 수정하였습니다.
  • 트러블 슈팅 기록

스크린샷

화면 기록 2024-12-02 오전 3 14 02

  • 녹음종료를 누르더라도 잔여 인코딩을 하기때문에 상당히 늦게 녹음 프로세스가 종료됩니다. (영상은 3배속)

@begong313 begong313 added BE Backend 관련 작업 ✨ Feature 새로운 기능 추가 labels Dec 1, 2024
@begong313 begong313 added this to the 티클 AI 요약 milestone Dec 1, 2024
@begong313 begong313 self-assigned this Dec 1, 2024
@begong313 begong313 linked an issue Dec 1, 2024 that may be closed by this pull request
@github-actions github-actions bot added the size/m label Dec 1, 2024
@begong313 begong313 closed this Dec 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BE Backend 관련 작업 ✨ Feature 새로운 기능 추가 size/m
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feat] 서버에 발표자 음성 저장
2 participants