DIY(Do it yourself) 트랜스코딩

트랜스코딩을 직접 수행할 수도 있습니다. 이미 웹-스트리밍 형식으로 이미지 또는 동영상을 만드는 자체 렌더링 프로세스가 있는 경우 유용할 수 있습니다.

DIY 트랜스코딩 팁

노트:

다음은 DIY 트랜스코딩을 선택할 경우 염두에 두어야 할 몇 가지 상세 정보입니다.

자동 트랜스코딩 끄기는 선택 사항입니다.

Flow Production Tracking는 sg_uploaded_movie 필드를 모니터링하고 지원되는 파일을 자동으로 트랜스코딩합니다. 그러나 사용자가 트랜스코딩을 직접 수행하는 경우 업로드된 .mp4 미디어 파일은 sg_uploaded_movie 필드 대신 sg_uploaded_movie_mp4 필드로 트랜스코딩됩니다. 이 경우 자동 트랜스코딩이 트리거되지 않습니다.

썸네일이 업로드되면 자동 트랜스코딩이 해당 썸네일의 더 작은 버전을 생성합니다.

숨겨진 필드 노출

sg_uploaded_movie_mp4sg_uploaded_movie_frame_rate 필드는 기본적으로 표시되지 않습니다. 이러한 필드는 브라우저의 Javascript 콘솔에 다음 명령을 입력하여 브라우저에 표시할 수 있습니다.

SG.schema.entity_fields.Version.sg_uploaded_movie_mp4.grid_column = true;
SG.schema.entity_fields.Version.sg_uploaded_movie_frame_rate.grid_column = true;

트랜스코딩 스크립트를 설정하는 동안 이 두 가지 트랜스코딩 필드가 UI에 항상 표시되도록 하려면 지원 팀에 문의하십시오.

동영상 이름은 파일 형식 확장자로 지정

모범 사례는 생성하는 동영상의 이름을 적절한 확장자(.mp4)를 사용하여 지정하는 것입니다. 일부 브라우저는 이러한 특정 확장자가 없는 동영상 형식을 제대로 탐지하지 못하기 때문에 재생 오류가 발생할 수 있습니다.

초당 프레임 수(FPS)는 기본적으로 24

sg_uploaded_movie_frame_rate 필드의 기본값은 24이므로 FPS가 24가 아닌 미디어인 경우에는 올바른 sg_uploaded_movie_frame_rate를 설정해야 합니다.

DIY 트랜스코딩 코드

이 코드는 스트리밍 가능한 영상 파일을 생성하기 위해 실행하는 FFmpeg 코드입니다. 변수 대체는 ruby 스타일입니다.

vcodec = "-vcodec libx264 -pix_fmt yuv420p -vf 'scale=trunc((a*oh)/2)*2:%{height}' -g 30 -vprofile high -bf 0 -crf 23"
acodec = "-strict experimental -acodec aac -ab 160k -ac 2"
ffmpeg -i #{src_file} #{acodec} #{vcodec} -f mp4 #{dest_file_mp4}

위의 높이 변수는 최소 1080에서 소스 해상도(따라서 상향 조정할 수 없음) 사이입니다.

해당 프레임 속도를 강제로 실행해야 하는 경우 트랜스코딩 호출에 -r 플래그를 추가하면 됩니다. 따라서 24 FPS를 강제 실행하려면 다음과 같이 하면 됩니다.

ffmpeg -r 24 -i #{src_file} #{acodec} #{vcodec} -f mp4 #{dest_file_mp4}

목록에서 이 플래그를 첫 번째로 유지하는 것이 중요합니다. 그렇지 않으면 FFmpeg 인코딩 시 프레임이 떨어집니다.

이 코드는 스틸 이미지 파일을 생성하기 위해 실행하는 ImageMagick 코드입니다.

convert #{src_file} -resize #{2048}x{2048}\\> #{dest_file}

Flow Production Tracking의 기본 제공 트랜스코더는 썸네일을 만들 뿐만 아니라 스트리밍 가능한 동영상 형식도 생성합니다. 트랜스코딩을 직접 수행하는 경우 이 기능을 복제하는 API 호출을 작성해야 합니다. 자세한 내용은 upload_thumbnail()upload_filmstrip_thumbnail()에 대한 API 문서를 확인하십시오.

FFmpeg를 사용하여 영사 슬라이드 썸네일을 만들려면 일련의 개별 썸네일 이미지에서 이미지를 생성하는 데 사용하는 다음 코드를 참조하십시오.

ffmpeg -threads #{self.threads_to_use} -i #{src_file} -vf select=\"not(mod((n-#{offset})\\,#{frame_increment}))\",setpts=\"N/(#{fps_f}*TB)\",scale=#{frame_width}:-1 -sws_flags lanczos -qscale:v 2 -pix_fmt yuvj420p -f image2 #{thumb_files}-%02d.jpeg"

사이트에서 DIY 트랜스코딩을 활성화하기 위한 추가 요구사항

DIY 트랜스코딩을 활성화하고 자동 Flow Production Tracking 트랜스코딩을 끌 준비가 되면 사이트를 적절하게 구성할 수 있도록 지원 팀에 문의하십시오.

자동 트랜스코딩

Flow Production Tracking에서 동영상 및 이미지를 자동으로 트랜스코딩하는 방법에 대한 자세한 정보는 "트랜스코딩" 문서를 참조하십시오.