NodeJS를 사용하여 일일 코로나 바이러스 비디오 생성

3160 단어 javascriptnode
저는 지난 주에 Shotstack에 대한 코로나바이러스 비디오 데모를 작업하고 있습니다. 이 데모는 Github에서 open source project으로 출시되었습니다.

Our World in Data의 코로나바이러스 사례 및 사망자의 일일 피드를 사용하여 COVID-19 전염병의 영향을 받는 각 국가의 일일 사례 증가를 보여주는 비디오를 생성할 수 있습니다. 바이러스의 기하급수적인 성장을 보는 것은 아주 극적인 방법입니다.

다음은 3월 28일부터 미국에서 생성된 동영상의 예입니다.



당신은 우리의 몇 가지를 더 볼 수 있습니다.

비디오를 만드는 방법



프로젝트는 Node JS로 작성되었으며 Github에서 사용할 수 있습니다. 스크립트는 npm(또는 Yarn) 명령을 사용하여 실행할 cli 도구로 설정되었습니다.

첫 번째 단계는 (https://github.com/shotstack/coronavirus-data-video-demo) 에서 리포지토리를 체크아웃하는 것입니다.

프로젝트는 Shotstack 비디오 편집 API에 의존하므로 키가 필요합니다. 웹 사이트https://shotstack.io를 통해 무료 키를 등록할 수 있습니다.

종속성을 설치하고 API 키와 사용 가능한 명령으로 .env 파일을 설정하는 방법을 보여주는 추가 정보 파일의 지침을 따르십시오.

주요 명령은 다음과 같습니다.

npm run dataset


이렇게 하면 Our World In Data에서 최신 CSV 파일을 다운로드하고 ECDC(European Center for Disease Prevention and Control)에서 데이터를 소싱합니다. 데이터는 매일 업데이트됩니다.

npm run list


CSV 파일에서 사용할 수 있는 데이터가 있는 국가 목록이 표시됩니다.

npm run generate -- --country 'United States'

npm run list 명령을 사용하여 표시된 대로 선택한 국가를 사용하여 API에서 렌더링할 비디오를 대기열에 넣을 수 있습니다.

스크립트는 5초마다 API를 폴링하고 약 20초 후에 브라우저에서 다운로드하거나 재생할 수 있는 비디오 파일인 비디오 URL이 반환됩니다.

작동 원리



Shotstack 비디오 편집 API는 코드를 사용하여 비디오 편집을 자동화할 수 있는 클라우드 기반 비디오 편집기입니다. JSON을 사용하여 비디오를 구성하는 방법, 즉 비디오, 이미지, SVG, 오디오, 텍스트 및 HTML과 같은 미디어 유형과 함께 클립을 자르고 순서를 지정하는 방법을 지정합니다.

JSON 편집 사양은 모든 자산을 결합하고 최종 비디오를 저장하고 URL을 mp4 파일로 반환하는 렌더링 엔진을 호출하는 API에 게시됩니다. 사용 가능한 기능, 인증 및 API 요청에 대해 검증된 방법을 제공하는 Node SDK도 사용할 수 있습니다.

fast-csv 패키지를 사용하여 스크립트는 먼저 CSV 파일을 반복하고 국가별로 데이터를 그룹화합니다.

그런 다음 국가 데이터는 사용자 선택에 따라 필터링되고 데이터를 반복하는 generateVideo 메서드로 전송되고 매 2 프레임(0.08초)마다 사례, 사망 및 날짜의 수로 카운터가 증가합니다.

데이터는 Shotstack SDK로 전달되어 프레임을 생성하고 텍스트와 함께 배경 비디오 및 사운드트랙 편집이 자동으로 구성됩니다.

마지막으로 완전한 편집 JSON 데이터가 렌더링될 API에 게시됩니다.

이 프로세스는 사용자가 선택한 국가에 대해 반복될 수 있으며 이론적으로 모든 국가와 CSV 파일의 데이터는 매일 한 번에 한 번에 자동으로 대기열에 추가될 수 있습니다.

오픈 소스 및 저작권



코로나바이러스 팬데믹이 암울한 상황이지만 이것이 우리 API가 무엇을 할 수 있는지에 대한 유용한 시연이 되기를 바랍니다. 이 비디오가 얼마나 실용적인지 잘 모르겠지만 프로젝트를 복제하고 실험하고(시작하는 것은 무료임) 창의력을 발휘하고 더 영향력 있는 무언가를 구축할 수 있기를 바랍니다.

코드는 MIT 라이선스에 따라 공개되며 사용된 모든 자산은 CC0이므로 사용자를 승인하거나 로열티 또는 수수료를 지불하지 않고도 어디서나 사용할 수 있습니다. 물론 자신의 자산을 사용할 수 있습니다.

GUI 구축



앞으로 몇 주 동안 우리는 사용자가 드롭다운 목록에서 국가를 선택하여 비디오를 만들 수 있는 프런트 엔드 웹 인터페이스를 구축할 계획입니다. 유용하다고 생각하거나 더 나은 아이디어가 있으면 아래에 의견을 보내주십시오.

좋은 웹페이지 즐겨찾기