サブタイトル:「mer2のマイノリティ・レポート(笑)」 --- 最近忍者ブログの仕様が変わったようで、一部の画像が見えなくなってますが、画像のURLコピペで見られます。(どうしよう困ったな) --- ご用件など、ございましたらtwitterまでどうぞ。
以前のYouTubeアップロードテスト(ここから始まるぐだぐだ)で引っかかっていた点を整理してみましょう。
アマレココでキャプチャーした動画で、
1) YouTubeの「&fmt=6」で高画質表示ができるのに、「&fmt=18」では表示がおかしい。
2) ffmpegでH264に変換する時のビットレート指定
-vcodec libx264 -b 1000k
が無効になってしまう。
てなかんじです。
1) については、ここの実験で原因が判明しました。
「&fmt=6」の場合はビットレートが1000k以上まで上がるのに対して、「&fmt=18」のビットレートは上限500kぐらいに制限されているみたい。
2) について:
試しに
-vcodec libx264 -b 5000k
とやってビットレートを上げてみたら、これは通りました。ビットレート設定が無視されているという訳ではなさそうです。ビットレート設定が低過ぎると、受け付けないような仕組みになっているようです。
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の変換ができるようになりました。目標達成です。
まとめると、今回の悩みの原因は
アマレココでキャプチャーした動画で、
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カメラのフレーム落ちした低レベルな動画しか相手にしていなかったので、たまたま問題無しに行っていたのですね。アマレココさん、疑ってごめんなさい。PR
この記事にコメントする
最新記事
(04/20)
(11/21)
(01/01)
(06/12)
(06/12)
(05/29)
(05/22)
(05/21)
(12/25)
(12/20)
最新コメント
[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]
カテゴリー
リンク
アーカイブ
アクセス解析
カウンター
カレンダー
12 | 2025/01 | 02 |
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
性別:
男性
趣味:
野良猫の餌付け