DIY(Do it yourself) 트랜스코딩

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

DIY 트랜스코딩 팁

참고: 이 페이지의 정보는 참조용으로 제공됩니다. 다른 버전의 FFmpeg 및/또는 코덱을 사용하면 결과가 달라질 수 있습니다.
Shotgun 트랜스코딩에는 공개 버전에 해당하지 않는 FFmpeg 커스텀 빌드가 사용됩니다.

다음은 DIY 트랜스코딩 작업 여부를 결정하기 전에 알아야 할 상세 정보입니다.

자동 트랜스코딩이 비활성화되어 있어야 함

트랜스코딩을 직접 수행하려는 경우 저희가 업로드된 이미지와 동영상에 대한 자동 트랜스코딩을 비활성화했는지 확인해야 합니다. 그렇지 않으면 업로드된 미디어 파일이 계속 자동으로 트랜스코딩되어 여러분이 직접 트랜스코딩한 서버에 있는 동영상을 덮어쓸 수 있습니다. 저희에게 지원 티켓을 보내주시면 여러분의 사이트에 대한 트랜스코딩을 비활성화하겠습니다.

Shotgun의 트랜스코더가 MP4를 생성함

이러한 필드는 여러분이 트랜스코딩 스크립트를 설정하는 동안 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 인코딩 시 프레임이 떨어집니다.

  • 이미지 파일의 경우 Shotgun의 트랜스코더는 지원되는 모든 브라우저에서 사용되는 단일 고해상도(최대 2K) 이미지 파일(원본에 투명도가 있는 경우 PNG, 그렇지 않으면 JPG)을 생성합니다. 고해상도 이미지 파일은 UI의 숨겨진 필드에 저장되지만 API를 통해 업데이트할 수 있습니다. 필드 이름은 sg_uploaded_movie_image입니다. 이러한 필드는 여러분이 트랜스코딩 스크립트를 설정하는 동안 UI에 표시됩니다. 이를 요청하려면 support@shotgunsoftware.com으로 이메일을 보내 주십시오.

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

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

Shotgun에 내장된 트랜스코더는 썸네일을 만들 뿐만 아니라 스트리밍 가능한 동영상 형식도 생성합니다. 트랜스코딩을 직접 수행하는 경우 이 기능을 복제하는 API 호출을 작성해야 합니다. 자세한 정보는 API 문서에서 upload_thumbnail() and upload_filmstrip_thumbnail()에 대한 부분을 확인하십시오.

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"

자동 트랜스코딩

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

팔로우