約 1,991,688 件
https://w.atwiki.jp/live2ch/pages/419.html
トップ ボツカテゴリ FFMPEG Launcher / 2016年06月01日 (水) 19時55分48秒 この記事は、現在古くなっており、読む必要はありません。2017.8.2 ニコ生で画質を上げたいならこれ!FFMPEG Launcher FFMPEG Launcher(以下、FFMLと略)は、ニコニコ生放送で使用できる高画質配信用ソフトです。 ▲FFML FFmpegを簡単に利用できる FFMLは、FFmpegというソフトを簡単に利用できるようにしたものです。FFmpegでライブ配信をすると高画質な配信ができるのですが、その一方で手間がかかり難解というデメリットがありました。そこで、FFmpegを簡単に配信で使えるようにしたのがFFMLです。 高画質な配信ができる FFmpegにより、数ある配信ソフトと比較して有利な環境で高画質な配信が可能となります。なぜなら、音声ビットレートを下げることで稼いだビットレートを映像のほうに回すことができるからです(後述)。よく使われているNLEやXsplitよりも高画質な映像にしやすいでしょう。 自動枠取りできる FFMLには自動枠取り機能があります。手動で枠を取る手間を省くことができ、難しい設定は必要ありません。FFML単体で可能です。 目次 最初に覚えておきたいこと高画質にできる理由 ビルドが必要 配信初心者には向かない FFmpegのビルド FFMLのダウンロードダウンロードの方法 7z形式について 7zファイルの解凍 FFML以外に必要なソフト・機能PCの画面を視聴者に見せるためのソフト PCの音を視聴者に聞かせるためのソフト 組み合わせについて FFMLの簡単な使い方 FFsplitの設定例画面キャプチャーする場合 PCの音とマイク音声をミックスする場合 XSplitの設定例 画質についての設定解像度 ビットレート エンコードモード プリセット 音声デバイスについての設定FFsplitの機能を使用する場合 XSplitの機能を使用する場合 ステレオミキサー機能を使用する場合 自動枠取り その他 関連ページ 最初に覚えておきたいこと 高画質にできる理由 FFML(正確にはFFmpeg)を使うとなぜ高画質な配信ができるのでしょうか。これを理解するためには、まずニコニコ生放送の仕様を理解する必要があります。ニコニコ生放送では、ビットレートに制限があります(*1)。最高でも映像ビットレートと音声ビットレートを合わせて480kbps(通常は384kbps)でしか配信できないため、他サイトと比較するとニコニコ生放送では低画質な映像となります。 映像+音声(2時~19時30分) 映像+音声(通常の時間帯) FFML(FFmpeg) 456kbps + 24kbps = 480kbps 360kbps + 24kbps = 384kbps ほかの配信ソフト 384bkps + 96bkps = 480kbps 288kbps + 96kbps = 384kbps ▲ビットレートの設定例 ビットレートに制限がある以上、ニコニコ生放送で高画質な映像を配信するためには、映像ビットレートを可能なかぎり高くし、逆に音声ビットレートは低くしなくてはいけません。たとえば、映像ビットレートを456kbps、音声ビットレートを24kbpsにすれば高画質にできるわけですが、音声ビットレートは下げなくてはいけません。しかし、このような設定にすると音質が極端に悪くなってしまいます(*2)。 そこで、音声ビットレートは下げつつも、できるだけ音質が悪くならないようにしなくてはいけません。では、どのようにして音質を維持するのか、その答えがFFmpegです。FFmpegは、FDK-AACというソフトを組み込むことができます。そして、FDK-AACこそが低ビットレートで音質を維持するために必要なものなのです。音声ビットレートが24kbpsでも視聴に耐えうる音質にできるので、余ったビットレートは映像に回してあげましょう。 ビルドが必要 いま述べたFDK-AACを組み込んだFFmpegを利用するためには、ある程度時間がかかります。というのも、ビルドという作業が必要になるからです。ビルドとは、ここではFFmpegを私たちが実際に使える状態にする(実行可能なファイルにする)ことをさしています。難しそうに感じるかもしれませんが、便利なビルドツールがあるので簡単です。 配信初心者には向かない FFMLは、わかりやすくて使いやすい配信ソフトです。しかし、まったくの配信初心者には向きません。なぜなら、FFMLにはPC画面を視聴者に見せる機能や、PCの音を配信する機能がないからです(詳細は後述)。したがって、FFMLに加えて別途ソフトを用意しなくてはいけないケースが出てきます。ニコニコ生放送に慣れないうちは、公式配信ソフトであるNLEを使用したほうがよいでしょう。そのほうが簡単です。 また、OBS Studioという配信ソフトを使用する方法もあります。この配信ソフトもFFMLと同様、音声ビットレートを下げつつ音質を維持することが可能です。ビットレートは映像のほうに割り当てましょう。PC画面を視聴者に見せる機能や、PCの音を配信する機能もあるので、お薦めです。 詳細は、OBS Studioの詳しい使い方を参照 ▲画面の上へ FFmpegのビルド 上で述べたとおり、FDK-AAC対応のFFmpegを使用するためにはビルドする必要があります。ビルドツールとして、今回はオレ流FFMpegビルドツールGUI版というソフトを使います。 オレ流FFMpegビルドツールGUI版の巻にアクセスする。 ソフトをダウンロードする。 ウィルス対策ソフト(アンチウィルスソフト)は念のために止めておく。 ソフトを解凍し、フォルダを開く。 「ore_Setup.exe」をダブルクリックする。 適当なドライブを選択し、「構築開始」をクリックする。 しばらく待つ。 デスクトップ上に「GUI版ビルドツール」および「FFMPEG置き場」のショートカットアイコンができる。 「GUI版ビルドツール」のショートカットアイコンをダブルクリックする。 「一撃ビルド」をクリックする。 しばらく待つ(筆者の環境では30分近くかかった)。 デスクトップ上の「FFMPEG置き場」のショートカットアイコンをダブルクリックする。 「ffmpeg.exe」ができていることを確認する(*3)。 ビルド中、「コンピューターに MSVCR120.dll がないため、プログラムを開始できません。この問題を解決するためには、プログラムを再インストールしてみてください。」というエラーが表示された場合は、Visual Studio 2013 の Visual C++ 再頒布可能パッケージをインストールしてください。 ▲画面の上へ FFMLのダウンロード ダウンロードの方法 つぎに、FFMLをダウンロードしましょう。 或ル人ノ棲息地 【ニコニコ実験場】にアクセスする。 上記コミュニティの「置き場」というところに、FFMLをダウンロードできるURLが記載されているので、アクセスする。 FFMLをダウンロードする。 7z形式について 注意したいのですが、ダウンロードしたファイルは7z形式となっています。これを解凍するためには、7-Zipという解凍ソフトが必要です。同ソフトがない場合はインストールしましょう。 7-Zip公式サイトにアクセスする。 「64ビット」の「ダウンロード」をクリックして7-Zipをダウンロードする(*4)。 7-Zipをインストールする。 7zファイルの解凍 7zファイルを解凍する方法は以下のとおりです。 「FFML_v0.0.1.xx.x.For.NET4.5.7z」上で右クリックする。 「7-Zip」にカーソルを重ねる。 「ここに展開」を選択する。 7zファイルが解凍される。 生成された「FFML_v0.0.1.xx.x.For.NET4.5.7z」フォルダをCドライブなど任意の場所に移動する。 ▲画面の上へ FFML以外に必要なソフト・機能 FFMLで配信する場合、別途ソフト・機能が必要なケースがあります。 PCの画面を視聴者に見せるためのソフト FFMLを使用してゲーム配信する場合は、PCに表示したゲーム画面を取り込んで視聴者に見せるためのソフトが必要です。下表で示したような画面キャプチャー機能を持ったソフトを別途用意します。機能の豊富さ、扱いの簡単さで選ぶのであれば、XSplitまたはFFsplitがよいでしょう。どちらも配信ソフトですが、配信機能は使いません(*5)。 PinP(複数画面) テキストの表示 PCの音の取り込み プレビュー画面 備考 NDC × ○ × なし 簡単に使える SCFH DSF ○ × × あり SCFF DSF ○ × × あり XSplit ○ ○ ○ あり 配信ソフト(有料)。多機能 FFsplit ○ ○ ○ あり 配信ソフト アマレコTV × × ○ あり ライブ機能・ミキサー機能を使用 アマレコTVのライブ機能およびミキサー機能を使うことでもゲームの映像・音声を配信できますが、必ずしも両機能は使わなくてもかまいません。たとえば、アマレコTVに表示したPS3のゲーム画面をFFsplitで取り込むという方法も可能です。ライブ機能およびミキサー機能の使い方を理解している人だけ、両機能を使うようにしてください。 PCの音を視聴者に聞かせるためのソフト FFMLでPCの音を配信するためには、(1)PCに搭載されているステレオミキサー機能を使用します。または、(2)XSplitやFFsplitなどを使用する方法でもかまいません。よくわからない場合は、FFsplitをインストールしてください。FFsplitがあれば、ステレオミキサー機能を使わずにPCの音とマイクの音をミックスして、FFMLで配信できます。 組み合わせについて どのソフト・機能を組み合わせてもかまいません。たとえば、FFsplitで画面をキャプチャーし、なおかつ同ソフトでPCの音とマイクの音をミックスしてもよいですし、あるいは、NDCで画面をキャプチャーしつつ、PCの音はステレオミキサー機能を使って配信するという方法でもよいでしょう。いずれにせよ、使用するソフトは別途インストールしておいてください。 ▲どのソフト・機能を使うのかという設定は、FFMLの「【FFMPEG】基本設定」タブの「デバイス」の部分で行います。 ▲画面の上へ FFMLの簡単な使い方 FFMLの使い方を簡単に見ていきましょう。 まず、「【FFMPEG】基本設定」タブで「【映像】」の部分を下記画像を参考に設定します。「デバイス」の部分は、各自で適切なものを選択してください。 ▲画像クリックで拡大。画像では「FFsource」を選択していますが、これはFFsplitの画面キャプチャー機能を使用する設定だからです。 つぎに、「【音声】」の部分を下記画像を参考に設定します。「デバイス」の部分は、やはり各自で適切なものを選択します(詳細は後述)。「コーデック」と「ビットレート」の設定も重要です。 ▲画像クリックで拡大。「FFsplit Playback Mixer」を選択しているのは、FFsplitの機能(PCの音を取り込む機能)を使用する設定からです。 「【FFMPEG】高度な設定」タブ→「共通設定」タブを開き、「品質基準VBR(-crf)」を「23.0」にします。 「【FFMPEG】高度な設定」タブ→「コーデック」タブを開き、「プリセット」を「slow」または「slower」にします。画質重視なら「slower」、もう少しPCの負荷を軽くしたいなら「slow」にしましょう。 すぐ下にある「【音声】プリセット」の「プロファイル」を「aac_he_v2」にします。ここは、「【FFMPEG】基本設定」タブの「コーデック」で「FDKAAC」を選択しているときのみ設定できます。 「【FFMPEG】高度な設定」タブ→「複合フィルタ」タブを開き、「音声ミックスを有効にする」にチェックを入れます(XSplitの場合はチェック不要)。そして、「音声デバイス」で「マイク」を選択します(詳細は後述)。 ▲「マイク」の表記は環境によって異なります。 「【FFML】設定」タブ→「一般」タブを開き、「ブラウザ」でふだん使用しているWebブラウザを選択してください。たとえば、Internet Explorerであれば「IEComponent」を選択します。「取得状態」に自分のユーザーIDが表示されれば成功です。 ▲niconicoを見るのに使っているWebブラウザを選択します。 右横の「ffmpeg.exe のPATH指定」で、さきほどビルドした「ffmpeg.exe」の場所を指定します。 ニコニコ生放送で枠を取り、「本番開始」をクリックします(*6)。 FFMLの「配信開始」ボタンをクリックすると配信が開始します(*7)。 途中で配信を終了するときは、「ツール」→「ニコ生」で「生放送を終了する」をクリックします(*8)。 ▲画面の上へ FFsplitの設定例 FFsplitの各種機能を使用する場合の設定を掲載しておきます。同ソフトを使用しない場合は読み飛ばしてください。 画面キャプチャーする場合 まず、以下のようにして解像度を変更しましょう。画質に関係してきます。 「Options」をクリックする。 「Encoder」タブを開く。 「Video Resolution」を640x360にする。 「OK」をクリックする。 FFsplitで画面キャプチャーする場合、以下のように設定します。 「Quick Region」または「Quick Window」をクリックする(*9)。 「Quick Region」を選択した場合は、画面上をマウスでドラッグして取り込み範囲を設定する。「Quick Window」を選択した場合は、取り込みたいウィンドウをクリックする。 「LAYER」にソースが追加される。 FFsplitのプレビュー画面に表示されている映像が見切れているときは、同画面上で右クリックして「Fit to Canvas」をクリックする。 FFsplitの「LAYER」は、他の配信ソフトでいうところのソースです(削除や並べ替えが可能)。「LAYER」の「New」からもソースを追加できます。また、「CANVAS」は他の配信ソフトでいうところのシーンです(複数のシーンを切り替え可能)。 PCの音とマイク音声をミックスする場合 FFsplitでPCの音とマイク音声をミックスする場合、以下のように設定します。 「Options」をクリックする。 「Capture」タブを開く。 「Capture Playback Device」が「Default Windows Palyback Device」になっていることを確認する。 「Capture Recording Device」で「マイク」を選択する(*10)。 「OK」をクリックする。 ▲画面の上へ XSplitの設定例 XSplitの各種機能を使用する場合の設定を掲載しておきます。同ソフトを使用しない場合は読み飛ばしてください。 XSplitの右上にある矢印ボタンをクリックし、「Resolution」で「640 x 360」を選択する。 「ツール」→「一般設定」の順にクリックする。 「オーディオ」タブを開く。 「マイク」で「マイク」を選択する。 「OK」をクリックする。 ▲画面の上へ 画質についての設定 解像度 まず解像度の設定は、「【FFMPEG】基本設定」タブで行います。「自動認識」のチェックは基本的に入れておくようにしましょう(*11)。そのうえで「出力解像度」の設定を640x360に変更します。ニコニコ生放送の画面サイズが640x360なので、これに合わせるかたちになります。 ビットレート 映像ビットレートの設定も「【FFMPEG】基本設定」タブで行います。音声ビットレートとの兼ね合いで、「合計ビットレート」が480kbpsになるように映像ビットレートを設定しましょう。下記画像のように設定するのが無難ですが、音質をもう少し上げたい場合は音声ビットレートを48kbps、映像ビットレート432kbpsにしてもかまいません。 なお、FFMLは時間帯によってビットレートを自動的に制御するため、ニコニコ生放送の384kbpsというビットーレート上限を意識する必要はありません。2時~19時30分のビットレート上限である480kbpsになるように設定します。 エンコードモード 「【FFMPEG】高度な設定」タブ→「共通設定」タブの「品質基準VBR (-crf)」は、基本的に「23.0」にしておきます。理論上はこの数値を小さくするほど高画質にできる(画質を維持しやすい)のですが、ニコニコ生放送で配信する場合はむやみに小さくしたところで意味はないでしょう。 プリセット プリセットの設定は、「【FFMPEG】高度な設定」タブ→「コーデック」タブの「【映像】基本プリセット」で行います。9種類のプリセットのなかから任意のものを選択してください。お薦めは「slow」または「slower」です。FFMLを使う以上、画質にある程度拘りがあるはずですし、PCにかかる負荷との関係でバランスがとれたプリセットです。 画質をさらに細かく設定したい場合は、「外部プリセット指定」でプリセットを読み込みます。プリセットは自分で作成してもよいですし、配布されているものも使用できます。 ▲画面の上へ 音声デバイスについての設定 PCの音やマイクの音を配信するための設定は、(1)「【FFMPEG】基本設定」タブ、および(2)「【FFMPEG】高度な設定」タブ→「複合フィルタ」タブで行います。この音声デバイスの設定については、さまざまなパターンが考えられます。混乱しないように注意しましょう。 FFsplitの機能を使用する場合 「【FFMPEG】基本設定」タブにある「【音声】」の「デバイス」で「FFsplit Playback Mixer」を選択する。 「【FFMPEG】高度な設定」タブ→「複合フィルタ」タブの「音声ミックスを有効にする」にチェックを入れる。 「音声デバイス」で「FFsplit Microphone Mixer」を選択する。 FFsplitのほうで設定する(上述)。 XSplitの機能を使用する場合 「【FFMPEG】基本設定」タブにある「【音声】」の「デバイス」で「XSplitBroadcaster」を選択する。 「【FFMPEG】高度な設定」タブ→「複合フィルタ」タブの「音声ミックスを有効にする」のチェックを外す(*12)。 XSplitのほうで設定する(上述)。 ステレオミキサー機能を使用する場合 ステレオミキサー機能を使用する場合は、【FFMPEG】基本設定」タブで「ステレオ ミキサー」を選択し、Windowsのほうでマイクミュートを解除します。【FFMPEG】高度な設定」タブ→「複合フィルタ」タブの「音声ミックスを有効にする」のチェックは外しましょう。 ▲画面の上へ 自動枠取り 自動枠取りする方法は以下のとおりです。 「ツール」→「ニコ生」で「新規番組を登録する」をクリックします。 各種設定をし、必要な情報を入力します。ここで「枠取り開始」をクリックすると枠を取ることができます。枠を取る必要がないのであればウィンドウを閉じてください。 「【FFML】設定」タブ→「一般」タブを開き、「コメントサーバ」および「アラート」の各種項目にチェックを入れます。 「ツール」→「ニコ生」で「配信終了時、自動的に新規番組を登録する」にチェックを入れます。 以上の設定で、枠が終了後FFMLが自動的に次枠を取得します(*13)。 ▲画面の上へ その他 配信中でも設定を変更できますが、いったん配信を停止してから配信しないと設定が反映されないので注意しましょう。 シャープフィルタをかけると画質をシャープにできます。「【FFMPEG】高度な設定」タブ→「共通設定」タブで「フィルタを有効にする」にチェックを入れて、「unsharp=3 3 0.5」などと入力します(3個めの数字を-1.5~1.5の範囲で)。ただ、シャープをかけすぎると文字が読みづらくなります。 「【FFML】設定」タブ→「一般」タブで「FFMPEG 実行画面を表示する」のチェックを外すことで、配信開始時に別ウィンドウで開く画面が表示されなくなります。また、「配信状況」タブの「グラフ」タブにグラフが表示されるようになります。 ▲画面の上へ 関連ページ このページと関連性の強いページは以下のとおりです。 ページ名 内容 ニコニコ生放送 生放送を行うための手順 ニコ生で必要なもの ニコ生での配信に使うソフト・ハード 参考になるWebサイト高画質を実現したいという方へ!【FFMPEG Launcher+XSplit】 FFsplitを使用してのFFMLニコ生配信設定 Windows の ffmpeg で生放送する方法 ▲画面の上へ ご報告ありがとうございました。修正しました。 -- 管理人 『「枠数カンターを利用する」は、ここに入力した回数だけ枠を取る設定です。 』とありますが、 付属の『更新履歴.txt』に『枠取りカウンターの追加 (例:XXX 第${COUNT}回)』とあるように、 タイトルに入れた${COUNT}を数値に置き換える機能ではないでしょうか。 入力した数値はその回の回数で、5と入力した場合は、自動枠取り時に6、7、8と増えるものだと思います。 -- 名無しさん (2016-04-08 07 34 28) ご指摘ありがとうございます。修正しました。 「PCの画面を視聴者に見せるためのソフト」の項、SCFHやSCFFのプレビュー画面が「なし」になっていますが、実際にはあります。 -- 名無しさん (2015-07-30 16 41 09)
https://w.atwiki.jp/how_to_use_ffmpegx/pages/8.html
先にコデックとコンテナの区別を把握して下さい。 こちらに説明があります。 MPEG4とは1.二種類の「MPEG4」 1.1. ISO MPEG-4規格の動画ファイル 1.2. MsMPEG4ベースの映像コデック 2. MPEG-4 AVC/H.2642.1.QuickTime7のAVC/H.264 2.2.ISO-MPEG4非互換の.mp4 2.3.AVIコンテナ 2.4.次世代DVDの動向 2.5.AVC/H.264の対抗馬 参考リンク MPEG4とは 1.二種類の「MPEG4」 巷間「MPEG4」と呼ばれるものには大きくわけて二種類ある。 ISO-MPEG4規格と、MsMPEG4ベースの映像コデックだ。 1.1. ISO MPEG-4規格の動画ファイル ISOというのは世界各国のJISの親玉。 MPEG-4はそこが決めた再生の規格。 だから、エンコードはナニを使っても良い。 乱暴に言えば再生紙だろうが手漉き和紙だろうがB5の紙はB5として通用するのに近い。 規格書は、主要なものだけでこれだけある。 ISO 14496-1 (Systems), Animation/Interactivity (like DVD Menus) ISO 14496-2 (Video), e.g. Advanced Simple Profile (ASP), as followed by XviD, DivX5, 3ivx... ISO 14496-3 (Audio), Advanced Audio Coding (AAC) ISO 14496-10 (Video), Advanced Video Coding (AVC), also known as H.264 ISO 14496-14 (Container), MP4 container format (uses the .mp4 extension) ISO 14496-17 (Subtitles), MPEG-4 Timed Text subtitle format 見れば解る通り、一般人が把握できるものでわ、無い。 それぞれの規格書は膨大で、例えばISO 14496-2 (Video)の下にはさらに細かい分類がある。レベルとかプロファイルとか、、、。 かつ、上記で全部でも、無い。 上記規格書に書かれている規格の全てをサポートした製品は、QuickTime7とapple-H264を含めて、存在しない。 つまり、現時点(2005年秋)では「当社の◎◎は国際標準規格ISO MPEG-4に対応です!!」てのは、無意味。上記規格書の一部だけをサポートしているに過ぎない。 とはいえ、ご家庭では、だいたいB5かA4があれば充分だと思う。A0やB3なんて大きな紙を使う事はそんなに無いし、まして製紙工場むけのロール紙の規格など知ってても仕方が無いだろう。 ISO MPEG-2に対するDVD規格のように、家電メーカーの団体が適当に整理した規格を作るまでは、こうしたややこしさは解消されないと思う。 ISO-MPEG規格がややこしい理由は2つある。1つめは、工業規格としてデジタル動画が使われそうな領域を全部カバーしなくちゃいけないという理由。2つめは、「世界中の企業・団体から特許を出してもらって、あらかた全部もりこんだから」。 これで技術的にはスゲェ優れた規格になる。そのかわり、この規格を使う人には特許料がドンとかかる。規格にキッチリ全部、完全対応した商品にはドドンとかかる。端的な例を出すと、中国メーカーがDVD再生機を作ると特許料は一台20ドルと聞く。これでは技術投資どころかマトモにやってくのも難しい。現在20ドル払う立場であれ、貰う立場であれ、自社特許を規格に入れなければ浮沈がかかる。全体から見れば些細な特許でも、採用されれば、特許料の相殺に使えるかも知れないからだ。 そんなわけで実際の規格策定には各企業の政治力や資金力、場合によっちゃ一国の産業政策も絡む。収拾が付かないまま会議は繰り返され、規格書はずんずん膨大になっていく。いや、誰が悪いとかぢゃなくて、そういう構造になっていると言う事。 1.2. MsMPEG4ベースの映像コデック MPEG4規格のキモは映像の圧縮効率。 マイクロソフトはいち早くそこに着目し、.asf専用コデックを出した。MsMPEG4。 .aviサポートが無い事に怒ったおっさんが速攻ハッキング。リッピングとファイル交換を通して一気に普及。これがDivx。 出自と使われ方はちょいと黒い。いろいろあってキレイな体になり、DivX4以降、会社になって商業化した。 XviDと3ivxはその「いろいろあって」の間に誕生した多数の亜種、競合の中で生きのこったもの。2005/秋、画質評価が最も高いのはXviD。 名前がなにやら似てるのは「いろいろあった」名残り。 どれもMPEG-4 ASP準拠(最初のリストの「ISO 14496-2」の中で定義されている内の一つ)なのでコデックさえあれば「映像部分は」再生互換性がある。 問題はコンテナと音声コデック。ISO MPEG-4規格ではaac音声と.mp4コンテナだが、 「一気に普及」の過程でデファクトを取ったのは「DivX+CBR-mp3.avi」。 Win用のTVキャプチャや動画再生機器類に「MPEG-4対応」とあったら、これを指すことがある。スペックシートを読むと「但し.mp4コンテナは不可」とか。でも「.avi」とは書いてないとか。これも「いろいろあった」名残りかも。 2. MPEG-4 AVC/H.264 、、、と、いうようなややこしい事を繰り返さない為に、新しいMPEG-4 AVC/H.264規格は少し整理された。上のリストで言うと ISO 14496-10。同じ映像規格なのにわざわざ新しい規格書として独立している。 AVCというのはMPEGという団体の呼び名で、H.264というのは通信規格を決める別の団体の呼び名。合同で作った規格なので、中身は同じ。 とはいえAVC/H264映像+aac音声.mp4ならどれでもOKなのかと言うと、どうもそうでもないらしい。整理されても元々が膨大なわけだし、AVC自体、はじまったばかりなので、すこしは「いろいろある」かも。 ここから先は「いろいろ」を予測する上での材料です。 必要ない方は、このへんで。 MPEG-4 AVC/H.264規格の概要はざっくりこちらにまとめました。興味があればどうぞ。 2.1.QuickTime7のAVC/H.264 ISO-MPEG4 AVC/H.264をフルサポートしたものでは無い。 基本的にAppleは映像圧縮の特許を持っていない為、画質や圧縮効率では競争力が無い。.mp4コンテナは.movが土台なので、QuickTimeは、コンテナの取り扱いは最強、映像コデックは最弱という悩ましい存在。 既にx264オプションとの非互換性がいくつか明らかになりつつある。 ffmpegXのx264+aac.mp4でBフレームを使うと、QuickTime Player 7Proで加工不能になる(再生は大丈夫)。 winのx264でb_pyramidというオプションを使うとQuickTime Player7で再生できない。 など。 x264の開発チームは画質と圧縮率にしか関心が無く、開発速度はエンコードが終わる前に次が出ると言われる程速い。ソースコードからビルドするのは難儀だが、ffmpegXの最新版は、x264を内蔵したMac用MEncoderと同時にリリースされる。当方がffmpegXにこだわるのはコレのため。 噂のビデオiPod + iTunes Video Store、さらにテレビの横はMacMiniでいいじゃん?ときたらなかなか魅力的ではあるが。個人的にはつまらない。せめて3ivx買収してクレヨン。 2.2.ISO-MPEG4非互換の.mp4 .srt形式の字幕が入った.mp4 北米にNero Digitalという会社がある。コデックの技術に定評があり、Win用AVCコデックで高評価を得ている。ここのMPEG-4対応DVD再生機は.srt形式の字幕が入った.mp4というものに対応している。規格外だが、DVDバックアップには適しているようだ。この機械はまだASP+aac.mp4しかサポートしていないが、いずれAVC+aac.mp4にも対応したものが出ると思われる。 AVC+CBR-MP3.mp4 なんてのも作れるらしい。音ズレのリスクが少ないというメリットがあるようだ。コンテナヘッダなど信用しない再生ソフト(MPlayerやVLC)なら再生もできるだろう。 2.3.AVIコンテナ さすがにAVIは、字幕や副音声が入れ難く、AVCとの親和性も低いため、winでも徐々に引退気味らしい。 ただし、シンプルで扱い易い構造なので、Win/linux界のエンコード環境のインフラとしては、永く残るだろう。 Win界にはAviUtilやAvisynthといった優れたエンコードツールがある。これらが吐き出す固定fpsベースの映像にaac音声を貼付けた.mp4を、全体の持続時間ベースのQuickTimeがどこまで扱えるか。現時点では不明瞭。 前述のAVC+CBR-MP3.mp4で音ズレ回避というのも関連するかも。 、、、intelMacでAvisynth動いたりしねぇかな。 2.4.次世代DVDの動向 「DVDバックアップ」を閉め出す為にも、単純にAVC+aac.mp4をそのまま再生とは行かないハズ。分裂のままコンテンツが出揃わない状況が続けば、Nero Digitalのような会社が勢力を伸ばす余地がある。 2.5.AVC/H.264の対抗馬 VC-1(旧称wmv9。wmv3とも) 次世代DVD再生機はAVCと並んでVC-1にも対応する。そうしないとBlueRayともHDDVDとも名乗れないようだ。映像圧縮の原理自体はどっちも一緒。現状、Macではwmv3映像は再生できないので(有償のコンポーネントはあるけど)ちょっとこれは勘弁してほしい。 SNOW 開発途上のlibavcodecの最新コデック。MPEG系とは全く異なる圧縮理論に基づく。AVC/H.264を遥かに凌ぐ重さらしい。libavcodec-AVCって聞かないなと思っていたら、そっちに行ってたのね。ポイントはISO-MPEG系につきものの特許問題を嫌ったという事らしい。linuxを中心にSNOW+ogg.mkvはある程度勢力を伸ばすだろう。 参考リンク Wikipedia:MPEG-4 +D Mobile:携帯動画の互換性を考える -- 「MPEG-4」の仕組みとは
https://w.atwiki.jp/bushimushi/pages/38.html
.flv から .mp3 をそのまま抜き出す ffmpeg -i input.flv -acodec copy output.mp3
https://w.atwiki.jp/takeone/pages/60.html
ffmpegで多重化 l-smash remuxer.exeまたはffmpegで多重化
https://w.atwiki.jp/yukkurinikonama/pages/137.html
FFMPEG Launcherとは 編集中 ふぁん作の外部ツール配信用アプリケーション ニコ生で使うには非常に手間のかかるFFMPEGを手軽に使えるようにしたソフト 枠取り機能などもある ダウンロード + 7zの解凍の意味がわからない方はコチラ ●現実世界で複数の物を宅配するとき、「箱詰め」しますよね ●ネットの世界では、これを「圧縮」というんですね ○現実世界で箱詰めされたものの中身を確認するには、『開封』しますよね ○ネットの世界では、これを『解凍』というんですね さて今からFFMPEG Launcerは7zという形式で圧縮されているので、中身を取り出すには 専用ソフトを使って解凍する必要があります 今回は無料の7-zipというソフトを使うことにします http //sevenzip.sourceforge.jp/ 7-zipというソフトは上記URLからDLできます + お使いのPCが、32bitか64bitかわからない人は XPならとりあえず32bitです vistaかwindows7なら下記参考に調べてください WindowsキーとRを同時押しするとファイル名を指定して実行が出てきます そこに「dxdiag」と入力してエンター DirectX 診断ツールが起動するので、オペレーティングシステムの項目末尾に 64bitと記載されていればあなたのPCは64bitです かかれていなければ32bitパソコン ダウンロードしてインストールが終わったOKです 解凍したいものを右クリックして「7-zip→展開」をクリックすれば 解凍が出来ます(解凍=展開) + FFMPEG Launcher本体のダウンロード 作者コミュニティのお知らせの欄に記載されているURLからDL出来ます http //com.nicovideo.jp/community/co1197025 Downloadをクリックするとダウンロード出来ます ダウンロードしたら解凍しましょう(中身を取り出す作業) 右クリックして「7-zip→展開」をクリックします OKをクリックします フォルダが出来ますので、フォルダの中身を確認します ちなみに7zデータは消していいです + FFMPEGのダウンロード このツールはFFMPEGを利用して動くツールなので 当然FFMPEGもダウンロードしておく必要があります 32-bit Builds(Static)の項目のものをDLする(64bitではない) http //ffmpeg.zeranoe.com/builds/ ダウンロードしたものは7zという圧縮ファイルなので対応した解凍ソフトで解凍しましょう 7zの解凍のやり方は上記に記載しております 解凍したら中に入っているbinフォルダの中のffmpegを 先程解凍したFFMPEG Launcherフォルダに入れる 使い方 + ①映像の設定 ①デバイス 映したい映像機器を選ぶ(カメラ映像を映したければカメラとか) ちなみにこのツールにPC画面や画像を表示する機能はないので それがしたければ「SCFHDSF」なども使う ②ビットレート 主に画質が決まる。音声のビットレートとの合計値を384kbps以下にしておかないと 配信が切断されることがある。細い回線の時は小さくしておかないと配信がぷつきれる わからなければとりあえず288kbpsにしておく ③出力解像度 解像度の意味がわからなければ、画素数といえばわかるかな 旧プレイヤー用映像なら512×384、新プレイヤー用なら640×360にしておくと良い ④フレームレート 一秒間あたりのコマ数。増やせばぬるぬる動く映像に、減らせばカクつく映像になる 多くても24fpsあれば良い、アニメだと12fpsくらいだろう 増やせばなめらかに動く映像になるが、そのぶん一コマの画質が下がる 静止画を映すときや動きの少ないものを映すときは減らしたほうが良い + ②音声の設定 ①デバイス 何の音を流すかの設定 マイクを選べばマイクの音だけを流すことが出来る 使っているPCにステレオミキサー機能があるならば、それを選択すればPCの音も流せる 仮にPCにステレオミキサー機能が無い場合でPCの音を流したければ X-fiGo!Proなどの機材を使えば可能 ②コーデック 動画というのは、映像データと音声データを組み合わせたものなんだけど その音声データの種類もいくつかあり、このツールの場合4つから選べる AAC とりあえずこれ選べば良い MP3 低負荷 Speex 低ビットレートの時に人間の声を流すのに適している Nellymoser 知らない ③チャンネル数 ステレオかモノラルか選べる 両耳から別々の音を出せるのがステレオ 両耳から同じ音を出せるのがモノラル 基本的にステレオ(stereo)を選べば良い ④サンプリングレート 音の画素数的なもの、上げると音質があがる CDは44100hz,DVDは48000hz、基本的に441000で良い ⑤ビットレート 音質が決まる、映像のビットレートと、音声のビットレートの合計が384kbps以下に なっていなければならない よくわからなければ96kbpsにしておく ⑥音量 100%=256,200%=512という感じ キリが悪い数字だと思う人もいるかもしれないが、理系の人にはきりが良い数字 基本的に256のままでよい + ③ffmpeg.exeのPATH設定 FFMPEGをFFMPEG Launcherと同じフォルダにいれているなら ffmpeg.exeと入力しておく + ④ニコ生Cookie取得設定 ブラウザの意味がわからない人はIE Componentのままで構わない もしそれでうまくいかなければIE Safemodeを選ぶ ブラウザの意味がわかる人はお使いのブラウザを選ぶこと + ⑤配信開始 その他の設定 + ⑥録画機能 配信しながら、同時に録画もできます 配信せずに録画だけも可能 音声のコーデックをAACに、ここをMP4にしておけば、出来上がった動画データは そのままニコニコ動画に投稿することも可能 録画したデータは、 + ⑦プレビュー機能 + ⑧ミラー機能 + ⑨グラフ機能(配信ビットレートとかのグラフ) + ⑨高度な設定 【プリセット】 CPU負荷具合を調節して、画質を上げる(圧縮率を上げる) ultrafast 超軽い動作、低画質 | slower 高スペ向け、高画質 といった具合、veryslowやplaceboはCorei7やXeonを2枚積んだPCでないと厳しい 【プロファイル】 基本的にHighで問題ない ベースライン I, Pフレームのみ、エントロピー符号化はCAVLC+UVLCのみ メイン ベースラインプロファイルにBフレーム、CABAC、重み付け予測などを追加 ハイ メインプロファイルに 8×8画素整数変換、量子化マトリックス等を加えたもの。また、YCbCr 4 0 0色空間(グレースケール)にも対応している 【チューニング】 映す映像の種類にあったものを選ぶと最適なエンコードになるっぽい 困ったときは + なんかピンク ニコ生デスクトップキャプチャーを使用すると、なぜか桃色っぽくなります 「気にしない」ようにするか 別のソフトを使って対処してください 【PC画面を表示するソフト】 SCFHDSF NiconamaVisualStation ManyCam ニコ生Effect 【画像を表示するソフト】 NiconamaVisualStation ManyCam ニコ生Effect + 配信開始を押してもエラーが出る場合 + BGMの流し方がわからない PCに備わっている「PC音とマイク音をミックスする機能」を使えば可能です ステレオミキサー機能と呼んだりします ステレオミキサーの設定方法はコチラ PCによってはステレオミキサー機能を搭載していないことがあります その場合、別途ステレオミキサー機能を搭載したサウンドカードなどの機材を購入して使うか ソフトを使えば可能です 別途機材を使った方法 仮想的にステレオミキサーみたいなの作るソフト
https://w.atwiki.jp/remodeling-psp/pages/33.html
PSP改造用語 PSPを改造するためにはいくつかの用語を把握しておかなければなりません。初心者の方は一度は目を通した方がいいと思います。 用語集 ファームウェア (Firm Ware) 略してFW。パソコンででいうOS的な存在。SONYからFWが公開されればバージョンアップすることが可能になる。 カスタムファームウェア(Custom Firm Ware) 略してCFW。改造されたFWのことをいう。導入することにより様々な機能を利用できる他、PSPの核であるFlashにもアクセスすることが可能。 ダウングレード (Down Grade) PSPのFWを1.50に下げること。FWを下げることによりCFW等の自作ソフトを導入することが可能になる。 クロスメニューバー(XMB) PSPのメニュー画面のことをいう。 カーネル(kernel) OS(pspの場合XMB)の基本機能を実装したソフトウェア。OSの中核部分として、アプリケーションソフトや周辺機器の監視、ディスクやメモリなどの資源の管理、割りこみ処理、プロセス間通信など、OSとしての基本機能を提供する。なおPCの場合はカーネルアクセスの許可を求めるが最新のPSPのファームウェアの場合自作アプリの起動を全て強制的に却下しているため自作アプリは起動できない公式体験版の場合は認識コードを忍ばせているために可能。 引用byPSP用語辞典 エミュレーター GABやPSのソフトをPSPで機動させるようにさせるソフトのこと プラグイン カスタムファームウェアではフォローできない機能をプラグインとして補完することで利用しやすくする、追加機能のようなもの。
https://w.atwiki.jp/dgsp/pages/1.html
ffmpeg 小生のためのセルフマニュアル なにぶん小生の英語力のためおぼつかないところは勘弁。 Video option Audio option 3.Advanced Video option おまけ
https://w.atwiki.jp/esperance/pages/12.html
How to use libavcodecs FFmpegが提供する、libavcodecsについて説明を行っていく。 libavodec概要 open input movie 入力されるファイルを開く前に、libavcodec(ffmpeg)が持つ機能を有効にするために、おまじないをする必要がある。そして、その後で入力されるファイルを、libavcodecが提供する関数で開く。 有効なコーデックをアクティベートする 入力ファイルを開き、基本的な情報にアクセスする 有効なコーデックをアクティベートする avcodec_register_all(); // おまじない その1 av_register_all(); // おまじない その2 入力ファイルを開き基本的な情報にアクセスする AVFormatContext *avFormatCtx; const char *filename = "キャプチャ.m2p"; AVFormatParameters = *avFormatPrm; av_open_input_file( avFormatCtx, filename, NULL, // AVInputFormat NULLでOK 0, // buf_size 0でOK avFormatPrm); av_find_stream_info(avFormatCtx); // 簡単なパース で開く。これは、メディアを開いた状態で、デコードに必要なコーデック等はまだ開いておらず、この後で徐々に必要な情報にアクセスし、コーデックを有効にしていく。また、メディア情報のダンプが成功するようになっており、ターミナルにムービーの情報を出力することができる。 dump_format(avFormatCtx, 0, filename, false); ターミナルへの出力 以下工事中 open codecs 入力ファイルにアクセスし、どのコーデックをオープンすれば良いかを得て、コーデックをオープンする過程を説明する。繁雑なので、特にビデオコーデックのみを開くコードを記述していく。 入力ストリームのビデオストリームへアクセスする 最適なビデオデコーダーを得る いよいよコーデックをオープンする 入力ストリームのビデオストリームへアクセスする for(int i=0; i avFormatCtx- nb_streams; i++) { int type = avFormatCtx- streams[i]- codec- codec_type; if (type == CODEC_TYPE_VIDEO) { videoStream = i; // 映像 } else if (type == CODEC_TYPE_AUDIO) { audioStream = i; // 音声 } else { ; // なんでしょ } } 先ほど得られた、AVFormatContextのメンバ nb_streamsの回数だけループし、int type =,,,,のようにしてそのメディアが、ビデオなのか、オーディオなのかを判定する。コード中のvideoStreamが映像のトラック番号を保持することになる。 最適なビデオデコーダーを得る vCodecCtx = avFormatCtx- streams[videoStream]- codec; vCodec = avcodec_find_decoder(vCodecCtx- codec_id); 実際に、vCodecCtxにビデオメディアの情報(サイズ、FPS等)がセットされ、vCodecがコーデックそのものを指すようになる。 いよいよコーデックをオープンする avcodec_open(vCodecCtx, vCodec); だけ。対応するコーデックがない場合、エラーで落ちる。 これで、デコードをするためのコーデックを得ることができた。後は、ムービーをリードし、正しくデコードしてあげるだけだ。 read packet 通常ムービーのパケットを読み込む方法には、2種類ある。1つ目は、1パケットずつ読み込み、必要なパケット数がたまった段階で、デコードを行う方法である。2つ目は、ビデオ1フレームに必要なパケットを一気に読み込みデコードを行う方法である。この区別はlibavcodecが提供する関数に基づく。 2つ目の方法の方が簡単で制御がしやすい半面、パケットの正確で高精度なタイムコード、すなわち(多分)PTSを得ることが不可能であるが、DTSは簡単に得ることができる。 私は手抜きで、この2つ目の方法を用いている。 典型的な流れは以下のとおり、 int size; int dts; uint8_t* data; // if = -1 end of file while (av_read_frame(avFormatCtx, packet) -1) { dts = packet.duration; data = packet.data; size = packet.size; if (packet.stream_index == videoStream) { decodeVideo(data); } else if (packet.stream_index == audioStream) { decodeAudio(data); } } つまり、av_read_frame()で、ビデオまたはオーディオ1フレーム(ビデオなら1枚、オーディオなら2048サンプルとか)を1度で準備し、デコードルーチンへそのデータを渡す。 デコードの基本動作はこの処理を繰り返すことにある。 decode デコードを行う際は、前の工程、すなわちリードしたパケットを入力する。ここでは、映像、音声それぞれのデコードの説明を行う。 映像のデコード avcodec_decode_video(vCodecCtx, YUVData, doneVideo, inputVideoData, inputVideoDataSize); 第1引数 vCodecCtxは、初期に開いたコーデック。第4引数 inputVideoDataは、packet.data つまりリードされたデータである。イメージとして、デコードされていないmpeg2のパケットデータなどである。第5引数 inputVideoDataSizeは、そのmpeg2パケットは一体何バイトであるのかという情報をデコードコーデックに引きわたす。 さて、説明を飛ばした第2・3引数であるが、簡単な第3引数から。第3引数 doneVideo は、ビデオパケットをデコードした結果、YUV形式の画像をデコードできたかを教えてくれる。通常、画像を得るまでには、2〜3枚ほどの入力フレームが必要になる。よって、この値が0以外であった場合に、デコードできた、と判定できる。 最後に、第2引数であるが、BMPファイルはみなさんごぞんじであろう。あれと同じで、人間が目で判別できる形式で、このYUVDataにデコード結果がセットされる。いわゆるrawデータである。 このYUVDataを得ることができるので、libx264を用いたエンコードの入力画像として渡してあげることができる。 音声のデコード avcodec_decode_audio(aCodecCtx, (short *)PCMData, decodedSamples, inputAudioData, inputAudioDataSize); 第1・4・5引数は、先ほどのビデオと同じ。 第3引数 decodedSamples は先ほどの doneVideoとは異なり、この変数にデコードされたサンプル数がセットされる。0であった場合は当然、デコードしたがまだ結果を得られていない状態である。 第2引数 PCMData にWAVEでお馴染のエンコードされていない、生データがセットされる。(shot *)でバッファを渡すにはわけがあり、ステレオ2チャンネルのとき、32bitデータを考えた場合に、上位16bitに右の音声、下位16bitに左の音声が記録される。そのため、キャストをしている。 deinterlace libavcodecが提供する関数を用いることで、容易にインターレースの解除を行うことが出来る。デコードの結果得られたYUVデータと、縦横、そしてフォーマットを指定すれば良い。 AVPicture deinterlacedYUVData; avpicture_deinterlace( deinterlacedYUVData, (AVPicture*)YUVData, PIX_FMT_YUV420P, width, height); resample まとめのコード
https://w.atwiki.jp/hal-psp/pages/11.html
PSPで動画を見るメモ PSPで再生可能なファイル形式~動画編~ ぶっちゃけて言うとファイル形式がmp4だったらもうそれでいい。 GOMプレイヤーひとつあればPC上でも見れるし。 ここはエンコードやサイトからのDLに重点を置いてみるスレになりました。 YOUTUBE、ニコニコ動画などから動画をDLする方法 Craving Explorer これ導入したら世界をとったも同じ。ニコポンとかはFLVでいったん落として そっから変換とかあったけどこれは直でDLからエンコまで出来る。 しかも変換形式は多彩。これだな。 これの操作が分からんとかいう人はもう人間おしまいなので今すぐPSPを窓から投げ捨てて 公園で遊んだらいいんじゃないかな。 唯一不便な点と言えばブラウザ機能も併設しているため、こちらでログインすると いつも見ているブラウザからログアウトしてしまう点。 ニコニコなどではDL用マイリスト作って一気に落とすとわりとラクかと。 追記:どうもmp4で落として転送するとファイル非対応であったり破損したりが多発したので 俺の環境では後述の方法を取っています。必要なのは真実に向かおうとする意思だ。 向かおうとする意思さえあれば、例え今回は失敗したとしてもいつかはたどり着くだろう。 向かっているわけだからな。違うかい? PCの中にあるmpegやらaviやらをPSP用に変換する まぁwinnyやらで動画落としますよね。もちろん著作権フリーのやつを。 そういう場合はたいがいmpegとかaviですよね。それを例によってmp4にしませふ。 携帯動画変換君 天下御免の有名ソフト。各種動画を色々な形式に変換してくれます。 セットアップからmp4(PSP用)の設定を選択して設定を保存、その後の エンコード形式は色々ありまして、サイズを小さく画像は悪くが趣味の人もいれば サイズはでかくてもキレイな画質でという人もいるでしょう。好きにしてください。 個人的には368x208/29.97fps/768kbps ステレオ/128kbpsの 設定が画質、音質、ファイルサイズとの兼ね合いでベストと判断して使ってます。 PSPに動画を転送する PSP上で認識されるための動画ファイル名は「M4V0xxxx.MP4」としなければなりません。 xの部分は任意の半角数字です。 転送先としてはPSPのメモリスティックのTOP(通常ならPSPフォルダが表示されている) にMP_ROOTフォルダを作成し、その中に100MNV01という名のフォルダを作り、 そこに送ることになります。またファームウェアが2.80以降の場合はTOPにVIDEOという フォルダを作ってそこに入れても同じ効果が得られます。本当にどっちでもいいです。 俺個人の感想としてこの手のソフトで有名なPSPタイトルライターはファイル破損表示の 状態になることが多く、フラストレーションがたまりまくる結果となりました。 そんな時、出会ったのがPSP動画転送君です。 これを使えばファイル名をいじらなくても転送ができ、空いた時間で始めた 株取引も成功し本来の仕事も順調、今では結婚を前提とした美人な彼女も出来ました。 老婆心ながら付け加えると転送後のファイル名は自動的にM4V0xxxx.MP4になります。 なのでPC上からは再生しないと何のファイルかは分かりませんがその辺は GOMプレーヤーで何とかしてくんろ。 総論(俺の現時点でのベストといえる動画から転送、再生までのルート) ~ストリーミングサイトから動画をPSPに転送するルート~ 1:Craving Explorerを使い、mpeg形式で動画をDLする 2:携帯動画変換君でmp4ファイルに変換する 3:PSP動画転送君を用いてファイルをPSPへと転送する 4:見る ~PCにあるmpegなどの動画ファイルから転送するルート~ 上記の2からだよな常識で考えて。
https://w.atwiki.jp/how_to_use_ffmpegx/pages/67.html
0.0.9u予定地 1.インストール