このページはYouTubeが60fpsの動画ファイルに未対応だった時代の情報です。すでに古い情報となっています。資料としてお読みください。
YouTubeに60fpsの動画をアップしたくなって色々調べて見たんですが、、、2010年2月時点では60FPS動画をアップしても、30FPSまたは29.97FPSに再変換されてしまう様ですね。
現在は、動画をアップするとサーバー側で必ず再変換されるのも仕様らしく、ニコニコ動画のような「この条件で動画を作れば再変換されない」ってな技は使えないみたいです。
当時のYouTubeの動画フォーマット(転載)
iPod用 | 360P | 480P | 720P | 1080P | ||
&fmt= | 18 | 34 | 35 | 22 | 37 | |
コンテナ (拡張子) | mp4 | flv | mp4 | |||
Video | Codec | H.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)x360 | 854(640)x480 | 1280(960)x720 | 1920(1440)X1080 | |
Kbps | 500 | 750 | 1000 | 2000 | ||
fps | 24、30 | 24、30 | 24、30 | 24、30 | 24、30 | |
Audio | Codec | AAC | AAC | AAC | AAC | AAC |
周波数KHz | 44.1 | 44.1 | 44.1 | 44.1 | 44.1 | |
Ch数 | 2 | 2 | 2 | 2 | 2 | |
Kbps | 128 | 128 | 128 | 128 | 128 |
上記の表は「デジカメ動画活用」さんのYOUTUBE活用ページより。
非常に良くまとまっていた為、勝手ながら転載させて頂きました。
Youtubeに高画質でアップロードしたい方には非常に価値のあるページです。
デジカメ動画活用さんでは、LameMP3+X264のavi形式でのアップロードを推奨されています。
他、アップロード前後の画質画質比較やチョットしたコツなどの解説もあり。
YouTubeの再変換
- 基本的に、30FPS以上でアップロードしたものは30FPSに強制的にダウンコンバート。
- 動画部分のビットレートは最大で
- 1080p HD:3.5Mbps
- 720p HD:2.0Mbps
- 480p:1.0Mbps
- 360p:500Kbps
- アスペクト比がテキトーでも、YouTubeのサーバー側でレターボックスを追加する等の処置で4:3または16:9に修正される。アップ前に下手に加工すると逆効果。
- 音声を48kHzでアップしても、44.1kHzにダウンコンバート。最大ビットレートは128kbpsっぽいが、何を基準にダウンコンバートされているかこれも不明(^_^;
▲960X720 59.94FPS、x264(4Mbps)+aac(48KHz 128Kbps)でアップしたもの。動画:30(29.97ではない)FPS・2Mbps、音声:44.1kHz、70kbpsになってしまった。
サイズやビットレートを変え、更にアップロードしてみます
▲1440X1080 29.97FPS、x264(5Mbps)+aac(44.1KHz 128Kbps)でアップしたもの。
動画:29.97FPS・3.5Mbps、音声:44.1kHz、102kbpsになってしまった。
▲960X720 29.97FPS、Xvid(4Mbps)+MP3(44.1KHz 128Kbps)でアップしたもの。
動画:29.97FPS・2.0Mbps、音声:44.1kHz、121kbpsになってしまった。
▲色々条件が分かって来た所で、上限ギリギリのビットレートや、少し余裕を持たせたビットレートで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がインストールしてあれば、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が原因っぽい。