DIY (Do it yourself)トランスコーディング

トランスコーディングを独自に行うことができます。これは、イメージやムービーが Web ストリーミングが可能なフォーマットで生成されるレンダリング プロセスが既にある場合に適している可能性があります。

DIY トランスコーディングのヒント

ここでは、DIY のトランスコーディングを行うことに決めた場合に、留意する必要があるいくつかの詳細について説明します。

自動トランスコーディングは無効にする必要がある

独自のトランスコーディングを行っている場合は、アップロードされたイメージやムービーに対する自動トランスコーディングを確実に無効にしてください。無効にしないと、アップロードされたメディア ファイルのトランスコーディングが自動的に継続されて、サーバ上の独自のトランスコーディング済みムービーが上書きされる可能性があります。サポート チケットを送信して、サイトのトランスコーディングを無効化するようにリクエストしてください。

Shotgun のトランスコーダが MP4 および WebM を生成する

(トランスコーディング スクリプトのセットアップ中に UI にこれらのフィールドが表示されるようにできます。サポート チケットを送信してリクエストしてください。)

ムービーの名前にこれらのファイル タイプの拡張子を付ける

ベスト プラクティスとして、作成するムービーの名前に、該当するファイル タイプ(.mp4、.webm)の適切な拡張子を付けます。一部のブラウザでは、これらの特定の拡張子がないとムービー フォーマットが正しく検出されない場合があり、これによって再生エラーが発生することがあります。

1 秒あたりのフレーム数(FPS)の既定値は 24

フィールド sg_uploaded_movie_frame_rate の既定値は 24 です。このため、24 FPS ではないメディアでは、適切な sg_uploaded_movie_frame_rate の設定が必要です。

DIY のトランスコーディング コード

これは、ストリーミング可能なムービー ファイル(H.264 用と WebM 用)を生成するために実行する、FFmpeg コードです。変数置換は Ruby 形式です。

  • vcodec = "-vcodec libx264 -pix_fmt yuv420p -vf 'scale=trunc((a*oh)/2)*2:720' -g 30 -b:v 2000k -vprofile high -bf 0"
    acodec = "-strict experimental -acodec aac -ab 160k -ac 2"
    ffmpeg -i #{src_file} #{acodec} #{vcodec} -f mp4 #{dest_file_mp4}
    vcodec = " -pix_fmt yuv420p -vcodec libvpx -vf 'scale=trunc((a*oh)/2)*2:720' -g 30 -b:v 2000k -vpre 720p -quality realtime -cpu-used 0 -qmin 10 -qmax 42"
    acodec = "-acodec libvorbis -aq 60 -ac 2"
    ffmpeg -i #{src_file} #{acodec} #{vcodec} -f webm #{dest_file_webm}

フレーム レートの強制が必要な場合は、トランスコーディングの呼び出しに -r フラグを追加することができます。WebM に 24 FPS を強制するには、次のように指定します。

  • ffmpeg -r 24 -i #{src_file} #{acodec} #{vcodec} -f webm #{dest_file_webm}
    

このフラグは、リストの最初にすることが重要です。そうしないと、FFmpeg のエンコーディングで、フレームの一部がドロップされる場合があります。

  • イメージ ファイルの場合は、Shotgun のトランスコーダにより、1 つの高解像度の(最大 2 K)イメージ ファイルが生成されます(元のイメージに透過性が含まれる場合は PNG で、それ以外の場合は JPG)。このファイルは、サポートされるすべてのブラウザで使用されます。高解像度のイメージファイルは、UI の非表示フィールドに格納されていますが、API を使用してそれらを更新することができます。フィールド名は sg_uploaded_movie_image です。(トランスコーディング スクリプトのセットアップ中に UI にこれらのフィールドが表示されるようにできます。support@shotgunsoftware.com 宛てに電子メールを送信してリクエストしてください。)

次に、静止イメージ ファイルを生成するために実行する ImageMagick コードを示します。

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

Shotgun のビルトイン トランスコーダは、ストリーミング可能なムービー フォーマットを生成するだけでなく、サムネイルも作成します。独自のトランスコーディングを行う場合は、この機能を複製する API 呼び出しの作成が必要になります。詳細については、upload_thumbnail() と upload_filmstrip_thumbnail() の API のドキュメントを参照してください。

FFmpeg を使用して独自の Filmstrip サムネイルを作成する場合に、個別のサムネイル イメージのセットからイメージを生成するために使用するコードを次に示します。

ffmpeg -r #{frame_count/seconds} -i #{src_file} -f image2 #{thumb_files}-%02d.jpeg
montage #{thumb_files}-* -geometry #{frame_width}x+0+0 -tile x1 -format jpeg -quality #{quality} #{filmstrip_path}

自動トランスコーディング

Shotgun でムービーやイメージが自動的にトランスコーディングされる方法に関する詳細は、記事「Transcoding」を参照してください。

フォローする

0 コメント

ログインしてコメントを残してください。