2013年7月3日水曜日

youtubeに投稿した動画のシーンが飛ぶ

少し前にちょっとしたゲームの攻略動画を作ってyoutubeに投稿しました。

この動画を投稿するのにちょっとトラブルがありました。

youtubeには結構色々な形式の動画を上げることができます。 しかし、ダウンロードできる動画の形式は多くありません。 youtubeに投稿された動画は、youtube側で再エンコードされるのです。 どの動画形式を投稿したらyoutube側のエンコードが入るのかは分かりませんが、とりあえず「画質にこだわるなら中途半端なエンコードをした動画は投稿すべきではない」と言われています。 投稿できる最大ファイルサイズに合わせてできるだけいいエンコードをしてアップロード → youtube側のエンコードで画質が下がるのを抑えるのが定石とされています。

これを踏まえて、最初に挙げた投稿動画の形式はLagarith Lossless Codecの可逆圧縮にしました。 aviutlで作成です。 3分弱の動画で800MBほどになりました。 それを投稿すると、youtubeでの表示に不具合が。 タイトルが表示されないのです。 動画がタイトルの直後から始まっています。

動画の投稿なんてそんなに頻繁にしないのでこの問題に時間をかけるつもりはありません。 調べ物をせずに場当たり的な対応をすることにしました。 この動画は当初、

  • 静止画のタイトル
  • 静止画の説明
  • 録画した動画を挿入
  • 静止画の説明
  • 録画した動画を挿入
  • ...

という構成になっていました。

aviutl上での構成の様子(最終稿)

字幕などは画像で前もって用意しました。 図中にたまにある「音声ファイル」とその上の「cap~」というのが動画、それ以外は静止画になっています。

とりあえず、最初の静止画のタイトルを適当な動画にして投稿。 タイトルは表示されるようになりました。 しかし、別の説明画像が飛ばされてしまいました。 静止画部分が飛ばされる可能性があるようです。

実は、最初のフレームを意味も分からずにキーフレームにしてたんですよね。 今回は静止画 → 動画の変更でその部分の不具合はなくなったけど、それが悪さをする可能性はあります。 根本的な原因を探るのに時間をかける気はないし、意味は分かってないけどキーフレームは消しておくか ... と思ったけどキーフレームの消し方が分かりません。 とりあえずその疑問を切り離すため3フレーム目からエンコード(Lagarith Lossless Codec)したデータを用意。 これを色々エンコードして投稿してみました。 結局次の順にエンコードしたのが通りました。 (無駄なエンコードをしている可能性大。)

  1. 可逆圧縮(Lagarith Lossless Codec)
  2. 無圧縮
  3. mp4

mp4のエンコードはaviutlでできるかなりよい画質にした ... ハズです。 というわけでファイルサイズも500mbと無遠慮に。

動画の時間が短かったためエンコードの時間は1~2分で済んでます。 作業時間はたいしてかかっていません。 しかしアップロードには時間がかかりました。 色々試すのに1日かかってます。 帯域の無駄遣いになってしまったのはちょっと反省。

ともあれ、これで投稿の動画形式で何を使えばいいかアタリはつきました。 次回からは色々無駄にせずにすみそうです。

  • 複雑な編集をした場合はLagarith Lossless Codecでエンコードしたものをそのまま上げない。
  • とりあえず今のaviutlに残っている設定でエンコードしたmp4は通る。