忍者ブログ
サブタイトル:「mer2のマイノリティ・レポート(笑)」 --- 最近忍者ブログの仕様が変わったようで、一部の画像が見えなくなってますが、画像のURLコピペで見られます。(どうしよう困ったな) --- ご用件など、ございましたらtwitterまでどうぞ。
[1] [2] [3] [4]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



静止画をヒントにシーン全体を改変する「動画のフォトショップ」技術
  デプスマップが自動生成できるという事は、ステレオ映像もそのまま作れちゃうって事じゃないですか。うひょ。
  解説動画はここから見たほうがいいぞ。
Using Photographs to Enhance Videos of a Static Scene on Vimeo
  右側から同じ投稿者の動画が見られる。こっちも見よう。
  ついでにここからこのプロジェクトのホームページのリンクも張ってある。
Using Photographs to Enhance Videos of a Static Scene
  なんかソースコードがダウンロードできるようになってるんですけど。

動画を思いのままに変更できる編集技術『Unwrap Mosaics』
  なんか判ったような判らないような。とにかくこんな事して遊んでみたいです。

まるで本物の女性のようなCGアニメーション「Emily」
  キタコレ。大きく見たい人はこちら。画質悪いけど。
PR


  以下はあくまで現時点での実験結果を基にしたものです。今後YouTubeの仕様変更で結果が変わる可能性は充分に有ります。っていうか絶対に変わると思います。御了承下さい。(大事なことなのでまた言いました)
  ついでにこの方法が絶対に正しいという保証はどこにも有りません。過信は禁物です。

  ffmpegここの最新版を使います。ちなみに私が使っているのはffmpeg-r13712-gpl-static-win32.tar.bz2。こないだ見た時はまだ最新版でした。あら、今見たら落ちてるわ。どうしちゃったのかしら。こちらでも大丈夫です。私がこないだ試したのは8月5日版でしたが、最新版で多分大丈夫でしょう。

  H264への変換は、まずはとりあえずこれを使ってみてください。例によってバッチファイルです。
YT_H264_sameq.bat
(右クリックメニューでダウンロード)

準備:
  「YT_H264_sameq.bat」のアイコンを「右クリック -> 編集」して、一行目
set FFMPEG_PATH=D:\ffmpeg\bin
の赤字部分を「ffmpeg.exe」を解凍したドライブ+フォルダ名に変更してください。
  例えば、「C:\ffmpeg」に解凍したならば、
set FFMPEG_PATH=C:\ffmpeg
てなかんじに。
  「ファイル -> 上書き保存」すれば準備完了です。

変換:
  変換したい動画ファイルを「YT_H264_sameq.bat」のアイコンにドロップしてください。変換が始まります。メジャーな動画フォーマットはだいたい変換できると思います。試してみて下さい。(いちおう参考。「D」が付いてるフォーマットは変換できるはずです。)

  いきなり
'ffmpeg' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
(略)
続行するには何かキーを押してください . . .

というメッセージが出たら、上の「ffmpeg.exe」場所指定が間違っています。見直してください。
  上手く行っていれば、
Press [q] to stop encoding
frame= 2452 fps= 50 q=-1.0 Lsize=    8080kB time=81.64 bitrate= 810.7kbits/s
みたいな表示になります。変換中ですので、
続行するには何かキーを押してください . . .
が出るまでお待ちください。変換元ファイルと同じフォルダに、「変換元ファイル名_sameq.mp4」のファイル名でH264に変換されたmp4ファイルが作成されます。

あとはアップしておしまい:
  チェック用バッチファイル
ffmpeg_info.bat
  上の「YT_H264_sameq.bat」と同様に、一行目を変更してください。
  動画ファイルをドロップすると、その動画ファイルの情報が表示されます。
Input #0, ...
以降が動画情報です。「bitrate:」が600kbits/s~1000kbits/s台ぐらいならば、変換したファイルをそのままYouTubeにアップしちゃって問題無いと思います。

  ビットレートが600kbits/sより小さいと、「高画質で表示する」のリンクが出現しないみたいです。それでも「&fmt=18」で高画質表示は可能です。それでかまわないなら、そのままアップロードしちゃってください。「高画質で表示する」が出ないと嫌なら次のステップへ。

  「sameq」でビットレートが3000kbits/sとか行っちゃってると、ファイルサイズがかなり大きくなってると思われます。それでも問題無いなら、そのままアップロードしちゃってください。ファイルサイズを減らしたいなら、次のステップへ。

気持ち調整:
YT_H264.bat
  上の「YT_H264_sameq.bat」と同様に、一行目を変更してください。
  使いかたは上の「YT_H264_sameq.bat」と同じです。ビットレートを1000kbits/sにして変換します。元ファイル名の末尾にビットレート数値を付けたファイル名で保存します。

  低ビットレートな動画を変換したい場合はそのままドロップしちゃってください。それで問題無しだと思われます。
  高ビットレートな動画のビットレートを下げる場合は、ビットレートの調整が必要になるかもしれません。二行目の
set BITRATE=1000k
で調整してみてください。こちらを参考に。


時間の無駄:
  ここまでやっといてなんですが、こんな記事を発見しました。
だらりな。
YouTube は、ユーザがアップロードしたオリジナル・ファイルを全部消さずに置いてて、新しいフォーマットを採用したらそれ用に全部エンコードしなおすっていうすさまじいことをやってるから、
な、なんだってー!!ΩΩΩ
  多分ここ数日の実験が「時間の無駄」になってしまうのは時間の問題でしょう。まあ、「今が良ければそれでいいのよ」という事で。

ついでに:
  「高画質で表示する」のリンクはYouTube側の都合によっては出現までかなりの時間がかかる事があるようです。このテストの時は、最大12時間ぐらいかかったのが3件程ありました。他の動画はすぐに出現してたのに。待ってる間に別のアカウントに同じ動画をアップしてみたら、そちらはすぐに出現しました。しばらく待っても出現しない時は、消去してアップし直したほうが早いのかもしれません。
  でも条件を満たしていれば必ず出るようです。のんびり待ちましょう。URLに「&fmt=18」を付けても表示に変化が無ければ、まだYouTubeは変換作業中です。

  この変換方法はステレオ動画にも使えます。アスペクト比8:3なサイドバイサイド動画も、この方法で見られるYouTube3Dな横50%縮小の4:3動画に変換します。もちろんこれがメインの目的です。


  問題解決ですっきりです。という訳でやっと想い描いていた形のアップロードテストができるようになりました。長かったね。

  以下はあくまで現時点での実験結果です。今後YouTubeの仕様変更で結果が変わる可能性は充分に有ります。っていうか絶対に変わると思います。御了承下さい。(大事なことなのでもう1回言いました)

  変換元ファイルは、アマレココ+FastCodecのキャプチャーをAviUtlでガンマ+コントラスト補正してHuffyuvで保存したもの。Huffyuvの元ファイルは640x480の322MB。

H264, sameq
  比較用にいちばんいい状態のファイルをアップロード。
> ffmpeg -i test.avi -s 480x360 -f mp4 -vcodec libx264  -sameq sameq.mp4
  「&fmt=18」だとこうなります。
H264, sameq, &fmt=18
  これはあきまへんね。
元ファイル:20,341KB、ビットレートは5198 kb/s。

  以下、「-qmax 50」の指定はなんの根拠もありません。テキトーです。
H264, 1000k
> ffmpeg -i test.avi -s 480x360 -f mp4 -vcodec libx264  -qmax 50 -b 1000k 1000k.mp4
元ファイル:4,723KB。

H264, 2000k
> ffmpeg -i test.avi -s 480x360 -f mp4 -vcodec libx264  -qmax 50 -b 2000k 2000k.mp4
元ファイル:9,035KB。

H264, 3000k
> ffmpeg -i test.avi -s 480x360 -f mp4 -vcodec libx264  -qmax 50 -b 3000k 3000k.mp4
元ファイル:12,818KB。

  当然ながらビットレートが上がるほど綺麗になっていますが、1000kと2000kの差が著しいですね。ならばと1500kもアップしてみました。
H264, 1500k
> ffmpeg -i test.avi -s 480x360 -f mp4 -vcodec libx264  -qmax 50 -b 1500k 1500k.mp4
元ファイル:6,977KB。

比較画像
1000k
1500k
2000k
3000k
sameq
  やはり1000kで画質ががくりと落ちています。1500k以上なら微妙な差ですね。でもこのへんの差は元動画によりけりなのではないかと思われます。


ついでに:
  ffmpegでxvidできた!「-aspect 4:3」を付けるとエラーが出ない。
> ffmpeg -i test.avi -aspect 4:3 -s 480x360 -vcodec libxvid  -b 3000k xvid_3000k.avi
これも比較しようと思ったけど、もう気力が有りません。また今度。
  んで思ったんだが、H264の「-sameq」って、動作が他と違ってますね。

  「-qmax」をいじると(本当に微妙だが)画質が変化している。
-libx264 -qmax 31 -b 6000k

-libx264 -qmax 50 -b 6000k
で比べてみると判る。YouTube目的ならば問題無さそうな差だけれど、もっといい方法が有るような気がする。


  以前のYouTubeアップロードテスト(ここから始まるぐだぐだ)で引っかかっていた点を整理してみましょう。

  アマレココでキャプチャーした動画で、
1) YouTubeの「&fmt=6」で高画質表示ができるのに、「&fmt=18」では表示がおかしい。
2) ffmpegでH264に変換する時のビットレート指定

-vcodec libx264 -b 1000k
が無効になってしまう。
てなかんじです。

1) については、ここの実験で原因が判明しました。
  「&fmt=6」の場合はビットレートが1000k以上まで上がるのに対して、「&fmt=18」のビットレートは上限500kぐらいに制限されているみたい。
  それじゃあ密度の高い動画の再現は無理です。という事で納得。
  似たような現象がこちらのブログでも確認できます。「&fmt=18」の動画が「&fmt=6」に比べて劣化してしまっています。しかしこれは気持ちのいい動画ですね。

2) について:
  試しに
-vcodec libx264 -b 5000k
とやってビットレートを上げてみたら、これは通りました。ビットレート設定が無視されているという訳ではなさそうです。ビットレート設定が低過ぎると、受け付けないような仕組みになっているようです。
「この動画をこんな低レベルでエンコしたら、ffmpeg様の沽券に関わらぁ」
みたいな意思が働いているみたいです。

  ffmpegの神解説サイトを見てみると、「-cqp」というオプションが怪しそうです。でもこのサイトには「-cqp」に関する詳しい解説が有りません。ぐぐってみると、コマンドラインでの「-cqp」の設定例がちょこっと見られます。「-cqp 24」とか「-cqp 27」とかで設定してます。真似してその値でやってみると、おお、ビットレートが変化します。「-cqp」の値が小さいほど、ビットレートが上が
るようです。ぐぐった中には
「-cqp (2-31で数字が小さいほど高品質)」
という解説も見つかりました。「-cqp 31」を試してみると、上の2)の例と同じビットレートになります。どうやら「-cqp」の設定が「ffmpeg様の沽券」の部分の基準となっていて、「-cqp 31」がデフォルトのようです。それではと「-cqp 50」で試してみると、(とんでもなく)低いビットレートに変換できました!悩み解決です。

  それでも「-cqp」では直接ビットレート値の指定ができません。これは不便です。ここに書いてある「-qmax (デフォルト=31)」というオプションを試しててみました。デフォルト値が「-cqp」と同じというのがなんとなく怪しかったので。
  「-qmin」、「-qmax」というのは、ffmpegの作業中に表示される
Output #0, mp4, to 'test.mp4':
    Stream #0.0: Video: libx264, yuv420p, 480x360, q=2-31, 200 kb/s, 25.00 tb(c)
の「q=」の部分を直接指定できるようです。実際に指定してみると、作業中の表示がそのとおりに変化します。とか言っても、これの意味するところを私は全く理解していないのですが。
  んで、上の2) の例の場合ならば、
-vcodec libx264 -qmax 50 -b 1000k
としてやると、いままでできなかったビットレート1000kの変換ができるようになりました。目標達成です。


  まとめると、今回の悩みの原因は
アマレココのキャプチャー動画のクオリティが高過ぎた
点にあったようです。今迄はWebカメラのフレーム落ちした低レベルな動画しか相手にしていなかったので、たまたま問題無しに行っていたのですね。アマレココさん、疑ってごめんなさい。


  以下はあくまで現時点での実験結果です。今後YouTubeの仕様変更で結果が変わる可能性は充分に有ります。っていうか絶対に変わると思います。御了承下さい。(大事なことなので2回言いました)

  次はビットレートを変えてみます。
H264, 640x480 to 480x360, 1000k
  640x480キャプチャを480x360にリサイズ、ビットレート1000k。
> ffmpeg -i test.avi -s 480x360 -f mp4 -vcodec libx264 -b 1000k test.mp4
H264, 640x480 to 480x360, 2000k
  640x480キャプチャを480x360にリサイズ、ビットレート2000k。
> ffmpeg -i test.avi -s 480x360 -f mp4 -vcodec libx264 -b 2000k test.mp4
H264, 640x480 to 480x360, 3000k
  640x480キャプチャを480x360にリサイズ、ビットレート3000k。
> ffmpeg -i test.avi -s 480x360 -f mp4 -vcodec libx264 -b 3000k test.mp4

  うーん、ビットレートを上げたほうが微妙に綺麗な気がしないでもないですが、それほど極端な変化は無いですね。以下は「&fmt=18」。
H264, 640x480 to 480x360, 1000k &fmt=18
H264, 640x480 to 480x360, 2000k &fmt=18
H264, 640x480 to 480x360, 3000k &fmt=18
  このへんは動画の内容にも依存すると思いますが、この程度の内容だったら1000kで充分なのではないでしょうか。むやみにビットレートを上げても、アップロードファイルが大きくなるだけです。


  H264以外のフォーマットでアップしてみました。本当はxvid使ってみようと思ったんだけど、上手くいかなかったのでmsmpeg4v2でアップ。
msmpeg4v2, 320x240 to 480x360, 1000k
  320x240キャプチャを480x360にリサイズ。
> ffmpeg -i test.avi -s 480x360 -vcodec msmpeg4v2 -b 1000k test.avi
msmpeg4v2, 640x480 to 480x360, 2000k
  640x480キャプチャを480x360にリサイズ。
> ffmpeg -i test.avi -s 480x360 -vcodec msmpeg4v2 -b 2000k test.avi

  むむ、「高画質で表示する」のリンクが出現しません。「&fmt=6」を付けても結果は同じ。それでも「&fmt=18」はいけます。
msmpeg4v2, 320x240 to 480x360, 1000k &fmt=18
msmpeg4v2, 640x480 to 480x360, 2000k &fmt=18

  これがYouTube高画質化におけるいちばん困った問題で、「高画質で表示する」リンクの出現法則についてははっきりした答えを未だに見かけておりません。とにかく高解像度、高ビットレートなファイルをアップロードすればいいらしいという事になっていますが、その基準が曖昧です。


  とりあえずH264なファイルなら480x360のビットレート1000kで「高画質で表示する」は出現しています。この場合のビットレートの下限を調べてみました。(コマンドラインに「-qmax 50」という謎のオプションが付いてますが、これについては次の記事で。)
H264, 640x480 to 480x360, 500k
  640x480キャプチャを480x360にリサイズ、ビットレート500k。
> ffmpeg -i test.avi -s 480x360 -f mp4 -vcodec libx264 -qmax 50 -b 500k test.mp4
  出現しません。
H264, 640x480 to 480x360, 600k
  640x480キャプチャを480x360にリサイズ、ビットレート600k。
> ffmpeg -i test.avi -s 480x360 -f mp4 -vcodec libx264 -qmax 50 -b 600k test.mp4
  出現しました。

  ちなみに、
> ffmpeg -i filename
で調べてみると、「-b 500k」のファイルは564kb/s、600kのファイルは651kb/sと表示されます。ビットレート600kあたりに境界線が有るみたいです。

  それでもビットレート500kは「&fmt=18」の高画質表示は可能です。
H264, 640x480 to 480x360, 500k &fmt=18
H264, 640x480 to 480x360, 600k &fmt=18
  そんなに悪くはないですね。まあこのへんは動画の内容によるのかもしれません。

  という訳で、
H264の480x360なファイルなら
ビットレート600kぐらいから
「高画質で表示する」のリンクを出現させられる
みたいです。
  H264は高画質でファイルサイズも小さくなるので、アップロードの負担も減ります。

やっぱこれっきゃないのでは。



  おまけでちょっと変な実験をしてみました。「&fmt=6」と「&fmt=18」のキャッシュファイルをそのままアップロードするとどうなるのか。既にYouTube側で再変換されたフォーマットですから、再変換をパスできたりしないでしょうか。
&fmt=6 cache file, H263, 480x360, 562k
&fmt=18 cache file, H264, 480x360, 410k
  あはは、やっぱり再変換かかってしまいます。「高画質で表示する」リンクも出現しません。「&fmt=18」はいけますが、微妙にノイズが増えているかんじです。
&fmt=6 cache file, H263, 480x360, 562k &fmt=18
&fmt=18 cache file, H264, 480x360, 410k &fmt=18

残念でした。


ついったやろうぜ
ブログ内検索
検索エンジンから来た人、思った結果が出なかったら再検索してちょ。
最新コメント
[08/27 BernardSr]
[08/27 BernardSr]
[08/27 BernardSr]
[12/29 GroverIcow]
[12/26 gayenKinesl]
[12/25 gayenKincfv]
[12/25 geRoesonokp]
[12/24 geRoesonmxu]
[06/30 LindsayDom]
[06/24 Ayukupim]
[06/22 francinerj2]
[06/21 Karsewis]
[06/17 Porsulik]
[06/16 Porsulik]
[06/16 Porsulik]
[06/16 Amimior]
[06/15 WilfordMof]
[06/11 lakeishatb1]
[06/04 Mathewlomi]
[05/31 tiopomWarriorvrp]
[05/31 Lasdumor]
[05/29 Aredorer]
[05/27 IMPUCKICT]
[05/26 Asosans]
[05/24 RaymondZice]
アクセス解析
カウンター
カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
プロフィール
HN:
mer2
性別:
男性
趣味:
野良猫の餌付け
Powered by ニンジャブログ  Designed by 穂高
Copyright © PCで立体視してみるぶろぐ All Rights Reserved
忍者ブログ / [PR]