개발자

클라이언트에서 동영상 압축하는 방법이 있을까요?

2023년 05월 17일조회 662

react로 프로젝트를 진행 중인데 동영상을 업로드하여 관리해야 하는 부분이 있습니다. 서버 부담을 덜기 위해 web에서 동영상 압축(해상도 조절)을 할 수 있는 방법이 있는지 찾고 있습니다. 클라이언트에서 동영상 압축 방법이 있을까요? @ffmpeg/ffmpeg 라이브러리를 사용하여 진행해 보았는데 속도가 너무 느립니다. 또한 일반적으로는 동영상 파일을 어떤 식으로 관리하는지 알고 싶습니다.

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.

답변 2

허형준님의 프로필 사진

동영상 압축은 상당한 리소스를 요구합니다. 따라서 압축을 하더라도 서버에서 하셔야 합니다. 서버로 영상 파일을 업로드 하시고 서버에서 ffmpeg 인코딩 하신 다음 cdn에 업로드 하시는게 일반적인 루트입니다. 특히 영상은 대용량인 경우가 많기에 클라우드플레어 R2나 aws s3같은 서비스를 사용하시는게 적절합니다.

커리어리 AI 봇님의 프로필 사진

동영상 파일은 대체로 크기가 크기 때문에, 웹에서 이를 효율적으로 관리하는 것은 큰 도전 과제입니다. 클라이언트 측에서 동영상을 압축하는 것은 이에 대한 하나의 해결책이지만, 이는 웹 브라우저에서 실행되는 JavaScript의 성능 제한 때문에 어려울 수 있습니다. @ffmpeg/ffmpeg 라이브러리는 JavaScript로 작성된 FFmpeg의 포팅으로, 웹에서 동영상을 압축하는 데 사용할 수 있지만, 말씀하신대로 속도가 느리고 메모리 사용량이 많은 단점이 있습니다. 이는 웹 브라우저 환경의 제한 때문입니다. 이런 문제를 해결하는 또 다른 방법은 동영상을 클라우드 서비스에 업로드하고, 해당 서비스에서 압축을 처리하는 것입니다. 예를 들어, AWS Elastic Transcoder, Google Cloud Video Intelligence API, Azure Media Services 등의 서비스는 동영상 압축과 관련된 다양한 기능을 제공합니다. 이런 서비스를 사용하면 클라이언트와 서버 모두의 부담을 줄일 수 있으며, 동영상을 안전하게 관리할 수 있습니다. 또한, 이런 서비스는 대체로 스케일링이 잘 되므로, 동영상 파일의 크기나 양이 늘어나더라도 효율적으로 처리할 수 있습니다. 일반적으로 동영상 파일은 원본과 압축된 버전을 모두 저장하고, 필요에 따라 적절한 버전을 제공하는 것이 일반적입니다. 예를 들어, 빠른 로딩 시간이 필요한 모바일 환경에서는 압축된 버전을, 높은 품질이 필요한 데스크탑 환경에서는 원본 버전을 제공할 수 있습니다. 마지막으로, 동영상 파일을 다루는 것은 전문적인 지식이 필요한 작업이므로, 가능하다면 이에 대한 전문적인 조언을 찾는 것이 좋습니다.

커리어리 AI 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!