このページはYouTubeが60fpsの動画ファイルに未対応だった時代の情報です。すでに古い情報となっています。資料としてお読みください。


YouTubeに60fpsの動画をアップしたくなって色々調べて見たんですが、、、2010年2月時点では60FPS動画をアップしても、30FPSまたは29.97FPSに再変換されてしまう様ですね。

現在は、動画をアップするとサーバー側で必ず再変換されるのも仕様らしく、ニコニコ動画のような「この条件で動画を作れば再変換されない」ってな技は使えないみたいです。

当時のYouTubeの動画フォーマット(転載)

iPod用360P480P720P1080P
&fmt=1834352237
コンテナ
(拡張子)
mp4flvmp4
VideoCodecH.264 baseline@2.1 H.264
Main@3.0
H.264
Main@3.1
H.264
High@3.1
H.264
High@4.0
サイズ480x360(270)640(480)x360854(640)x4801280(960)x7201920(1440)X1080
Kbps50075010002000
fps24、3024、3024、3024、3024、30
AudioCodecAACAACAACAACAAC
周波数KHz44.144.144.144.144.1
Ch数22222
Kbps128128128128128

上記の表は「デジカメ動画活用」さんのYOUTUBE活用ページより。
非常に良くまとまっていた為、勝手ながら転載させて頂きました。
Youtubeに高画質でアップロードしたい方には非常に価値のあるページです。

デジカメ動画活用さんでは、LameMP3+X264のavi形式でのアップロードを推奨されています。
他、アップロード前後の画質画質比較やチョットしたコツなどの解説もあり。

YouTubeの再変換

  1. 基本的に、30FPS以上でアップロードしたものは30FPSに強制的にダウンコンバート。
  2. 動画部分のビットレートは最大で
    • 1080p HD:3.5Mbps
    • 720p HD:2.0Mbps
    • 480p:1.0Mbps
    • 360p:500Kbps
    これ以下のビットレートにしてても、今の所必ず再変換されている。
  3. アスペクト比がテキトーでも、YouTubeのサーバー側でレターボックスを追加する等の処置で4:3または16:9に修正される。アップ前に下手に加工すると逆効果。
  4. 音声を48kHzでアップしても、44.1kHzにダウンコンバート。最大ビットレートは128kbpsっぽいが、何を基準にダウンコンバートされているかこれも不明(^_^;

Youtubeの再変換1
▲960X720 59.94FPS、x264(4Mbps)+aac(48KHz 128Kbps)でアップしたもの。動画:30(29.97ではない)FPS・2Mbps、音声:44.1kHz、70kbpsになってしまった。

スポンサー リンク

サイズやビットレートを変え、更にアップロードしてみます

Youtubeの再変換2
▲1440X1080 29.97FPS、x264(5Mbps)+aac(44.1KHz 128Kbps)でアップしたもの。 動画:29.97FPS・3.5Mbps、音声:44.1kHz、102kbpsになってしまった。

Youtubeの再変換3
▲960X720 29.97FPS、Xvid(4Mbps)+MP3(44.1KHz 128Kbps)でアップしたもの。 動画:29.97FPS・2.0Mbps、音声:44.1kHz、121kbpsになってしまった。

Youtubeの無劣化アップに挑戦
▲色々条件が分かって来た所で、上限ギリギリのビットレートや、少し余裕を持たせたビットレートでh264+aacのHD動画を作成してアップしてみるけど、「現在処理中です」のメッセージは必ず出ちゃう。

変換後の方が大きい
▲1.5Mbpsで作成した720p HD動画、YouTubeにアップした後の再変換で逆に大きくなっちゃいました(1.96Mbps)。 やっぱ720pサイズは強制的に2Mbpsに変換っぽい。

そして、自分で上限ギリギリのビットレートで作成した動画より、ビットレート超過した動画をアップしてYouTube側で処理してもらった方が全然高画質。(2パスでキッチリ作れば別かな)

HD動画なら、とりあえずffmpeg使って動画部分をh264の5~6Mbps程度、音声部分を44.1khz128KbpsのAACにしてアップするのが一番手っ取り早い。
二晩ほど色々悪戦苦闘して、ひとまず諦める事にしました。。。orz

でも60FPSの動画は、一応存在する。

60fps und youtube
▲どうも過去には60FPSがアップできていた時代もあるみたい。

動画のフォーマット

Format : Flash Video
Format/Extensions : flv
File size : 7.381 MiB
Writing application : YouTube, Inc.

Video
Count of stream of this kind : 1
Kind of stream : Video
Format : H.263
Codec : Sorenson H263
Duration : 3mn 14s 150ms
Bit rate : 319 Kbps
Width : 306 pixels
Height : 240 pixels
Display aspect ratio : 1.275
Frame rate mode : CFR
Frame rate : 60.000 fps
FrameCount : 11649
Bits/(Pixel*Frame) : 0.072

Audio
Count of stream of this kind : 1
Kind of stream : Audio
Format : MPEG Audio
Format version : Version 2 / Layer 3
Format profile : Version 1 / Layer 3
Codec : MPA2L3
Codec : MPEG-2 Audio layer 3
Duration : 3mn 14s 150ms
Bit rate mode : CBR
Bit rate : 64.0 Kbps
Channel(s) : 1 channel
Sampling rate : 22.05 KHz
Resolution : 16 bits

Videobitrate: 318 kbps
Audiobitrate: 64 kbps"

▲FLVオンリーな古い時代、306x240サイズ、コーデックはSorenson H263とか、、、色々特殊。
現在のHD画質なフォーマットに応用できそうに無いので試していないです。

他人がアップした動画のビットレートを知る

最新のFlash
▲そこそこ最新のFlashがインストールしてあれば、YouTubeの再生画面上で右クリック「Show Video Info」をすると、、、

フレームレートやビットレート取得
▲フレームレートやビットレートを取得出来ます。ビットレートは折れ線グラフになって表示され、可変ビットレートで圧縮されているであろう事が推測されます。(とりあえず720p HD動画は最大2.7Mbps、平均2.0MbpsのVBRっぽい事は分かった。)
(swf、mp4を問わずこの表示が出来る動画、出来ない動画があり、それは何が原因なのかチョットわからない)

 

あと、余談

「x264コマンドラインで作成したh264動画」と「ffmpegで作成した音声」をYambでMUXしたMP4動画は、何故かYoutubeにアップすると盛大な音ズレ発生(フレームレートを正しく理解してくれない)
59.94、29.97、30FPSの三つで確認したけど、これは何なんだろう?

追記:ニコエンコ使っても同様な結果に。再変換で動画のフレームレートが半分になってしまってるっぽい。
共通しているのはMUXにMP4Box、動画にx264、AAC音声にffmpegを使っている辺りか、、、それぞれ異なる2バージョンで試した&動画部分1pass、2pass試したけど変わらず。ドレが原因なんだろ?

かなり謎だけど、これも とりあえず今回は保留。
追記:MP4BoxでMUXしたMP4動画をFFMpegで
-vcodec copy -acodec copy -f mp4
とかやって素通しエンコするとYouTubeでキチンとフレームレートを把握してくれる。MP4Boxが原因っぽい。