
Ubuntu日本語フォーラム
ログインしていません。
【2008/05/01 追記】
スレッド全体を 8.04 Herdy に対応した記述に変更しました。
──────────────────────────
私は WindowsXP からの乗り換え組なので、Windows Move Maker に変わるソフトがないかと探していました。
Ubuntu で動くマルチメディアオーサリングツールは、いろいろあるのですが、Ubuntu 7.10 で、数日間いろいろ試してみた結果、ちゃんとした出力を得ることができたのが、cinelerra だけでした。
私は数日にも渡る試行錯誤は嫌い、というものぐさな人間なので、今では他のツールは今のところ使っていません。
というわけで前ふりが長かったのですが、Windows からの乗り換え組向け、インストール編!!イッてみようっ!!
1.Synaptic パッケージマネージャに以下のリポジトリを追加する。具体的には端末で以下の二つのコマンドを実行する。
deb http://repository.akirad.net akirad-hardy main
wget -q http://repository.akirad.net/dists/akirad.key -O- | sudo apt-key add -
2.Synaptic で cinelerra をインストール
「cinelerra」で検索するとヒットするので、後はインストール指定して適用するだけ。
以上で cinelerra のインストールは終わりです。コマンドラインを使いますが、上記コマンドラインをコピー・アンド・ペーストすればいいだけなので、コマンドラインが苦手な人でも、簡単にインストールできます (^_^)
# このスレッドを充実させるための協力者を、チョー募集中です!!
最後の編集者: avidya (2008-05-02 10:21:42)
とりあえずスライドショーを作成したときのレポートを書きます。
0.注意点
cinelerra では Project というもので、作成する動画を管理します。もしもに備えて、こまめに Project は save しましょう。
1.画像ファイルを準備しまう。 ← わたしはそれからしまう〜 ♪
フォーマットは jpeg でテストしました。
2.[Settings]-[Preference]をクリックすると Preference ダイアログが開くので、Recording タブをクリックします。
3.Preference ダイアログの最下部に [Inport images with a duration of xxxxxx Seconds] とあるので、チェックボタンを On にし、テキストボックスに一画像あたりの表示秒数を入力します。
4.OK ボタンをクリックします。
5.今度は [Settings]-[Format] をクリックします。
6. 私は Preset に NTSC を選びました。
7.Audio の Sample Rate は 44100 で不自由を感じたことがないので、デフォルトの 48000 から mp3 などでよく使われる 44100 に変更しました。
8.Video ですが DVD に焼くことを想定していないので Width=320、Hight=240 に変更しました。
ちなみに jpeg 画像も GIMP などを使って、このサイズでつくっています。
9.起動時に Program ウィンドウに現れている全トラックを、コンテキストメニューの Delete track をクリックして削除します。
10.[File]-[Load files] をクリックして、ファイル選択ダイアログでスライドショーに取り込みたい jpeg ファイルをすべて選択し、ロードします。
その際 Insert Strategy のリストボックスで Append in new traks を選んでおきます。
これをしておかないと、せっかく先にロードしたオブジェクトが上書きで消されてしまいます。これはデフォルトの設定で Replace current project になっているからです。注意してください。
12.同じく、[File]-[Load files] をクリックして、ファイル選択ダイアログでスライドショーに取り込みたい音楽ファイルを選択します。
私は mp3 ファイルを指定しました。他のフォーマットは試していません。
13.これまでの状態で、Resources のウィンドウに読み込んだファイルのリスト、Program のウインドウに読み込んだファイルがトラックとして表示されています。
ただし各トラックのスタートラインがすべて一緒です。これではまずいので、各トラックをずらすような編集をします。
14.各トラックをずらします。
ツールバーのマウスカーソルのアイコンのボタンをクリックしてください。
あとは各トラックに配置されているオブジェクトをドラッグ&ドロップするだけです。
15.各トラックを並べ終えたら再生してみて確認します。
16.[File]-[Render]を選択し、Render ダイアログを表示します。
17.Select a file to Render to に好きなファイル名を入れます。
なんの動画かわかりやすいようなファイル名をおすすめします。
18.File Format を選択します。
私の環境では OGG Theora/Vorbis でないとまともな出力が得られませんでした。
Windows AVI では画像が出力されませんでした。
Quicktime for Linux では画像の色がサイケデリックな色彩に _/ ̄|○
19.Insert Strategy は Insert nothing を選びます。
デフォルトの Append new tracks のままだと、プロジェクトのトラックに作成した ogg ファイルが追加されてしまいます。
20.OK に該当するボタンをクリックするとエンコードがスタートし、Program ウィンドウのプログレスバーが徐々に増えていきます。
21.処理が終わっても、特別ダイアログが表示されることはありません。プログレスバーが 0% にリセットされたらエンコード完了です。
あと Windows AVI にエンコードすると、プログレスバーは 100% に達しましたが、cinelerra がいきなり落ちます。
avi ファイルもできているのですが、画像が表示されません。音声は再生できるのですが。
22.エンコードを中断したい時は Program ウィンドウ右下の×アイコンをクリックします。
23.もう一つ注意点を。
エンコードを開始する前に、Render ダイアログの Render audio tracks のチェックボックスを on にすることを忘れないでください。
このチェックボックスが off になっているとオーディオトラックが、ターゲットファイルに出力されません。
とりあえず以上です。もっと別のもっと楽なスライドショーの作り方があるかもしれませんが、Windows Move Maker のように、画像ファイルの表示時間を、タイムラン上でドラッグ&ドロップして変更するような機能や、その代替機能は見つかりませんでした。
あと cinelerra の本家サイトのマニュアルを斜めよみしてみたのですが、Windows AVI、Mov ファイルへのエンコードには問題が残っているようです。このあたりの改善は今後のバージョンアップ待ちになるようです。
最後の編集者: avidya (2008-02-24 10:47:40)
現状での cinelerra 2.1CV で体験した、運用でカバーできない問題を列記しときます。
1.ogg しか、まともに出力できない。
例えば YouTube やニコニコ動画などに動画をアップロードする場合は、ffmpeg などのお世話にならなければならず、画質、音質の悪化は避けられない。
2.mp3 ファイルをプロジェクトにロードするとき、クラッシュすることがある。
mp3 ファイルを wav に変換してからロードしたら、クラッシュしない場合『も』ある。
総じて、まだ不安定さが残っているソフトだと言えます。クラッシュは、おそらくポインターがらみのバグか、ヒープオーバーフローじゃないかと思われます。コードを見ていないので、確信はできませんけど。でもスライドショーをつくるだけなら、大体は安定して動いています。
余談ですが、ffmpeg には WinFF という GUI が存在します。でも WinFF は、ffmpeg の全機能をカバーしていないのと、2 pass で動画ファイルをコンバートしようとすると、正しくないコマンドラインを生成するようです。2 pass はすべてエラーになりました。
mencoder が良いという話をあちこちで読んだり、ニコニコでデモ動画を見たりしたのですが、GUI がないので ( 探したのですが 404 Not Found 攻撃、URL が見つかりまへん攻撃にあってしまいました )、使い方が難しすぎます。
ffmpeg のエンコードの品質が上がったり、ffmpeg や mencoder のガワの機能が充実することで、Windows からの乗り換えが、より容易になるのになぁ、という感想を持ちました。一番望ましいのは cinelerra のエンコードの充実ですが。
動画のテストはこれからです。でも手持ちの動画は mov しかないので、評価協力者を募集ぅ!!
今回のレポートはニコニコ動画にスライドショーをアップロードをしたい、という人に捧げます。CUI も使いますが、難しくはありませんので、ぜひともチャレンジしてみてください。
ちなみに 2pass には、まだ成功していませんので、その点はご理解ください。
【使用するソフト】
・cinelerra 2.1CV
・ffmpeg
ただし ffmpeg は Ubuntu に同梱されているものをそのまま使いません。別にビルドされた ffmpeg を使います。ffmpeg の差し替えの手順は後に述べます。
・端末
【ffmpegの差し替え】
1.端末を起動します。
2.以下のコマンドラインを端末にコピー&ペーストします。
sudo wget http://www.medibuntu.org/sources.list.d/hardy.list -O /etc/apt/sources.list.d/medibuntu.list
3.以下のコマンドラインを端末にコピー&ペーストします。
sudo apt-get update && sudo apt-get install medibuntu-keyring && sudo apt-get update
4.アップデートマネージャを実行します。
5.ffmpeg 等のアップデートが要求されるので、アップデートをインストールします。
【画像の準備】
画像は jpeg、png あたりで充分です。ニコニコ動画では画像のサイズが 512 x 384 なので、GIMP などであらかじめリサイズしておきます。
この作業を怠ると、ogg ファイルに圧縮されることと、ffmpeg で flv に再エンコードすることで、画像が荒れてしまいます。
【cinelerraでの ogg ファイルの作成】
すでに説明済みですので、そちらを参照してください。
【ffmpeg を使った ogg ファイルの変換】
今までは WinFF を使って wmv に変換していましたが、今回は端末を使って以下のコマンドラインを打ち込みます。WinFF は便利ですが、512 x 384 という解像度の指定ができません。
ffmpeg -i "test.ogg" -vcodec flv -r 25 -b 400k -acodec mp3 -ar 44100 -ab 128k "test.flv"
-i オプションは入力 ogg ファイルのフルパスを指定します。その際、ダブルコーテーションで必ずくくってください。また、-o オプションは出力 flv ファイルのフルパスを指定します。
それぞれ適切なパス名を指定してください。
以上で 512 x 384 の flv ファイルが出来上がります。Nautilus でダブルクリックすることで再生できるはずです。画像、音質のクオリティはそれでチェックしてください。
【注意事項】
ニコニコ動画の仕様として以下の制限があります ( 公式情報 )。
・flv ファイルサイズは 40MB 以下でなければなりません。
・flv ファイルのビットレートは画像と音声合わせて 600Kbps 以下でなければなりません。
それと flv ファイルの場合、ニコニコ動画のサーバで再エンコードされると、やはり画質、音質が劣化します。再エンコードされない方法は、いろんなサイトを参考にしながら、目下研究中です。
最後の編集者: avidya (2008-05-01 19:58:29)
cinelerran で作成した ogg ファイルを ffmpeg を使って、しかも 2 pass で flv に変換してみたので、手順だけレポートします。
最初に述べておきたいのは cinelerran の出力する ogg ファイルの品質が低いためなのか、他のあらゆる codec を用いて変換する際、2 pass でもビット落ちがかなりの確率で発生します。単なるブロックノイズではなく、ビットが黒く落ちます _/ ̄|○
cinelerran が出力する ogg ファイルのビットレートが異様に高いのが気になるんですが。いや 860k というビデオのビットレート自体は、普通なのかもしれません。そこまで私は知識がないので、はっきりしたことは言えないのですが。
テスト自体、ニコニコ動画へのアップロードをターゲットにしているので、無理があるのかもしれません。でも異常に高画質・高音質な動画がアップロードされてたりするんですけど。
それでは手順を箇条書きします。
1.cinelerran で ogg ファイルを作成する。
2.端末で 1 pass 目を入力実行します。以下のような感じです。
ffmpeg -i "ogg ファイルのフルパス" -vcodec flv -r 25 -b 400k -pass 1 -an -passlogfile passlog "flv ファイルのフルパス"
簡単にパラメータを解説します。
-i パラメータは変換元のファイルをフルパスで指定します。上記の例では ogg ファイルのフルパスを指定しています。
-vcodec パラメータには、ビデオのコーデックを指定します。上記の例では flv を指定しています。
-r パラメータはビデオのフレームレートを指定します。上記の例では 25 / 秒を指定しています。
-b パラメータはビデオのビットレートを指定します。上記の例では 400k にしています。
-pass パラメータはパスの番号を指定します。上記例では 1 pass 目ですから、1 を指定しています。
-an オプションをつけると、変換元ファイルから、オーディオ部分を出力しないようにできます。1 pass 目の目的は flv ファイルを作成することではないので、時間の節約のためにも、このオプションを指定します。
-passlogfile パラメータは、2 pass 目で必要な設定ファイルを作成するために指定します。上記の例では設定ファイルとして passlog という名前のファイルを設定ファイルにしています。
3.端末で 2 pass 目を入力実行します。以下のような感じです。
ffmpeg -i "ogg ファイルのフルパス" -vcodec flv -r 25 -b 400k -pass 2 -passlogfile passlog -acodec mp3 -ar 44100 -ab 128k "flv ファイルのフルパス"
簡単にパラメータを解説します。
-i パラメータは変換元のファイルをフルパスで指定します。上記の例では ogg ファイルのフルパスを指定しています。
-vcodec パラメータには、ビデオのコーデックを指定します。上記の例では flv を指定しています。
-r パラメータはビデオのフレームレートを指定します。上記の例では 25 / 秒を指定しています。
-b パラメータはビデオのビットレートを指定します。上記の例では 400k にしています。2 pass 目では、この -b パラメータの指定が不要である、とのメッセージが表示されますが、エンコードはそのまま実行されます。
-pass パラメータはパスの番号を指定します。上記例では 2 pass 目ですから、2 を指定しています。
-passlogfile パラメータは、1 pass 目で作成した設定ファイルを利用するために指定します。1 pass 目で指定した同じファイルを指定します。
-acodec パラメータはオーディオのコーデックを指定します。上記例では mp3 を指定しています。
-ar パラメータはオーディオのサンプルレートを指定します。上記例では 44100Hz を指定しています。
-ab パラメータはオーディオのビットレートを指定します。上記例では mp3 でよく使われる 128 を指定しています。
この 2 pass 目を実行したときに flv ファイルを上書きしてよいか尋ねてきますので、y を入力して上書きします。
以上で ffmpeg を使った 2 pass エンコーディングを行うことができます。
現在納得のいく画質が得られていないので、もうしばらく、いろいろテストするつもりです。とりあえず経過報告ということで。
【追記】
ffmpeg の -sameq パラメータをテストしてみました。
このパラメータはソース画像の品質を維持する、という時に使用します。
で、判らない現象が生じています。
というのは cinelerra で作成した ogg ファイルのビデオビットレートを nautilus で確認すると、860k あります。しかし、ffmpeg では入力側の ogg ファイルのビデオビットレートが 238k しかない、とメッセージが表示されます。
どちらの数字を信用すればいいのか?それともなにかこの数値の違いに合理的な説明がつくのでしょうか?
これでは cinelerra を評価するべきか、 ffmpeg を評価するべきか困ってしまいます。
どなたかご存知ありませんか?
とりあえず ffmpeg の 2 pass で、なんとか我慢できるレベルのスライドショーを作成できたので、報告します。もちろんニコニコ対応版です。これまでと違うところはフレームレート数を極端に減らしたことです。
1.cinelerra でスライドショーを作成する。その際、画像表示時間は秒単位とする。ミリ秒単位では指定しない。
2.cinelerra で ogg ファイルを作成する。
3.端末に以下のコマンドを打ち込む。
ffmpeg -i "ogg ファイルのフルパス" -vcodec flv -r 4 -b 500k -pass 1 -an -passlogfile passlog "flv ファイルのフルパス"
4.端末に以下のコマンドを打ち込む。
ffmpeg -i "ogg ファイルのフルパス" -vcodec flv -r 4 -b 500k -pass 2 -passlogfile passlog -acodec mp3 -ar 44100 -ab 64k "flv ファイルのフルパス"
以上で画質はかなり改善されます。ただしビット落ちだけはどうにもなりませんでした。やはり元動画が非圧縮コーデックでないと、限界があります。
cinelerra が非圧縮コーデックをサポートするのを待つ必要があります。ogg しか、まともに出力できない現状ではいかんともしがたいものがあります。
なお上記コマンドラインでビデオビットレートを 500k、オーディオビットレートを 64k にしたのは、以下のサイトを参考にしましたためです。ニコニコの仕様の分析が詳しいサイトです。
http://nicowiki.com/encode.html
これまでのテスト結果は以下の URL で見ることが出来ます。ただしニコニコ動画のアカウントが必要です。
http://www.nicovideo.jp/watch/sm2513037 *削除したため現在は見ることができません。
最後の編集者: avidya (2008-05-01 20:02:11)
今日は高画質スライドショーを、ニコニコ仕様で作成する方法を発見したので報告します。
【手順概略】
1.画像を準備する。サイズはニコニコの仕様に合わせて、すべて 512x384 のものにする。
2.cinelerra に一画像あたりの表示秒数を設定する。この方法はこのスレッドの過去の書き込みを見てください。
3.画像を cinelerra にロードして行く。効果などのいらない単純なスライドショーなら、Paste at insertion point で画像ファイルを同一トラックにつなげて行く。
4.YUV4MPEG Stream で Video のみ Render する。
5.端末で以下のコマンドを叩く。( 1 pass 目 )
ffmpeg -i "m2v ファイルのフルパス" -vcodec flv -r 1 -b 500k -pass 1 -an -passlogfile passlog "flv ファイルのフルパス"
6.端末で以下のコマンドを叩く。( 2 pass 目 )
ffmpeg -i "m2v ファイルのフルパス" -i "mp3 ファイルのフルパス" -vcodec flv -r 1 -b 500k -pass 2 -passlogfile passlog -acodec copy "flv ファイルのフルパス"
【注意点】
・画像ファイルはあらかじめ 512x384 に編集しておく。GIMP が役に立つ。
・再生時間に合わせた mp3 ファイル、もしくは wav ファイルを用意しておく。
・ビットレートやフレームレートは適宜変更する。
【解説】
cinelerra の YUV4MPEG Stream のビデオ出力は非圧縮なので、flv にエンコードする際にかなり良い品質の画像が得られます。そのため、まずスライドショーの画像を YUV4MPEG Stream に出力します。
そのままだと無音になってしまいますので、ffmpeg の入力ファイルを m2v ビデオファイルと、mp3 などの音声ファイルの二つを指定し、マージします。
ffmpeg の 2 pass 目でマージが完了するので、ターゲットの flv ファイルの完成です。
【サンプル】
http://www.nicovideo.jp/watch/sm2985105
http://www.nicovideo.jp/watch/sm2985153
【参考 URL】
http://karenevil.blogspot.com/2007/09/ffmpeg.html
※ブランクのあたりが参考になります。
最後の編集者: avidya (2008-05-01 20:05:14)
今回は動画を Ubuntu 上でニコニコ動画向けにエンコードする方法をレポートします。ただし最後で紹介するサンプルはなにかと問題があるサンプルなので、今回のレポートはご自身がデジタルビデオで撮影したものを編集する場合にご利用ください。
1.ムービーファイルを用意します。複数でも構いません。
2.cinelerra にムービーを読み込んでいきます。ムービーを複数つなげる場合は Paste at insertion point でムービーをロードして、つなげていけばよいです。
3.Video トラックのみ YUV4MPEG Stream で Render します。
video bitrate を知るために、エンコードに直接使用はしないけれども、一度 ogg ファイルに Render してみるという手もあります。
4.音声をそのまま使うなら、Audio トラックを mp3 で出力します。
私のテストケースではソースに VOB ファイルを利用したので、音声チャンネルが複数あります。そのため ffmpeg で、各 VOB ファイルから Audio ストリームを mp3 に出力し、Audacity にてワンファイルにまとめました。その方法はこのレポートの目的ではないので、記述しません。
5.一回目の ffmpeg の使用で、ビデオのサイズを本番変更前に微調整します。
以下のコマンドラインはあくまでサンプルです。このサンプルでは元動画が 16:9 ( 720x480・スクイーズ ) のため、クロップを行い、左右 8 ドットを削っています。
この微調整が必要か、必要ならどういう微調整が必要かは参考サイトを見てください。
ffmpeg -i "m2v ファイルのフルパス" -vcodec flv -r 30 -b 10000k -s 720x480 -cropleft 8 -cropright 8 -deinterlace -pass 1 -passlogfile passlog -an -y "テンポラリー flv ファイルのフルパス"
ffmpeg -i "m2v ファイルのフルパス" -vcodec flv -r 30 -b 10000k -s 720x480 -cropleft 8 -cropright 8 -deinterlace -pass 2 -passlogfile passlog -an -y "テンポラリー flv ファイルのフルパス"
ちなみにビデオビットレートが非常に高いのは、VOB ファイルのビットレートが不明だったからです。
またレイトが 30 なのは、VOB ファイルのレイトが 30 だったからです。
ここでは画質維持を優先します。
参考サイト:http://nicowiki.com/encode.html#content_1_18
6.二回目の ffmpeg の使用で、本格的なビデオのリサイズと、mp3 の取り込みを行います。以下にサンプルのコマンドラインを示します。
ffmpeg -i "テンポラリー flv ファイルのフルパス" -vcodec flv -r 10 -b 400k -s 512x288 -pass 1 -passlogfile passlog -an -y "ターゲット flv ファイルのフルパス"
ffmpeg -i "テンポラリー flv ファイルのフルパス" -i "mp3 ファイルのフルパス" -vcodec flv -r 10 -b 400k -s 512x288 -pass 2 -passlogfile passlog -acodec mp3 -ab 64k -y "ターゲット flv ファイルのフルパス"
以上でニコニコ動画に最適化された flv ファイルが完成します。ただしパラメータの値は、これが正解、というものがないので、試行錯誤を繰り返すことになります。
また、やはり元画像と比べると画質の劣化はさけられないのと、ニコニコ動画の flv アップロードの仕様の制限から、どこかで妥協する必要もあります。
なお、フレームレイト、ビデオビットレイト、mp3 ファイルのビットレート、ファイル自体のサイズが、ターゲットの flv ファイルのサイズに影響するので、ニコニコ動画の 40MB という flv ファイルに課せられた制限をクリアするのに、試行錯誤を重ねなければなりません。
【サンプル】
http://www.nicovideo.jp/watch/sm2544260
ちなみに私はプレミアムユーザではないので念のため。 *サンプルは著作権の関係で削除しました。
最後の編集者: avidya (2008-05-01 20:45:33)
なんだか最近、cinelerra を使いこなすより、Medibuntu 版の ffmpeg を使いこなす方が重要だ、という認識に立ち始めています。
一応、Ubuntu 環境でニコニコ動画向けのスライドショーを作るための連載を始めたので、プロフィールの URL を貼っておきます。おそらくスライドショーを DVD Video にするときにも役に立つはずです。
http://www.nicovideo.jp/user/6321883
最後の編集者: avidya (2008-05-01 20:14:12)
【2008/05/01 追記】
7.10 の Ubuntu、Medibuntu の ffmpeg では、コンテナ mp4、音声 aac のエンコードができなかったので、ffmpeg をビルドする方法を自分の blog にまとめました 。
ちなみに今現在はニコニコ動画用に動画をビルドするときは以下のようなコマンドラインを使っています。
ffmpeg -i "/home/user_name/work/test.m2v" -vcodec flv -r 1 -b 500k -deinterlace -pass 1 -passlogfile "/home/user_name/work/passlog" -an -y "/home/user_name/work/test.flv" ffmpeg -i "/home/user_name/work/test.m2v" -i "/home/user_name/work/test.mp3" -vcodec flv -r 1 -b 500k -deinterlace -pass 2 -passlogfile "/home/user_name/work/passlog" -acodec libmp3lame -ar 44100 -ab 128k -y "/home/user_name/work/test.flv"
微妙にコーデックの指定方法が変わっているので、注意してください。
ちなみに 1 枚の静止画だけで 6 分くらいの曲を動画化した場合、上記のコマンドを実行すると、総ビットレートがだいたい 250k bps から 300k bps に収まるので、音楽を流すのを目的とした動画なら、エコノミーを回避できます。
最後の編集者: avidya (2008-05-02 10:25:12)
こんにちは。
Ubuntuでニコニコ動画にMP4動画をアップロードしたので、ちょっと書いてみます。
ほとんど自分のメモ用ですが、参考にされる方がいらっしゃれば幸いです。
今回の目的は、「Xbox360のプレイ動画をニコニコ動画にアップロードすること」。
以下のような手順を踏みました。
0.ソフトウェアの準備
1. Xbox360の映像をキャプチャする
2. キャプチャした動画をCinelerraで編集し書き出す(一部カットし、BGMをつける)
3. 編集した動画をffmpegでMP4に変換する
# 長くなるので複数に分けて投稿させていただきます。
0.ソフトウェアの準備
用意するソフト
・Cinelerra
avidyaさんの投稿記事で解説されているので割愛します。
・ffmpeg
僕はソースをコンパイルする方法をとりました。
まず、Synapticで下記をインストールします。
・subversion
バージョン管理ソフトですが、ffmpegのソースファイルを取ってくるのがラクなので使いました。
・libfaac-dev
・libx264-dev
上の2つは、ffmpegにMP4変換機能を付加するのに必要です。
以上をインストールしたら、以下のコマンドでffmpegのダウンロード/コンパイルを行います。(すでにSynaptic等でffmpegを入れている場合、念のためアンインストールしたほうがよいかもしれません)
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg cd ffmpeg ./configure --enable-libfaac --enable-libx264 make sudo make install
1. Xbox360の映像をキャプチャする
すいません、ここはWindowsのお世話になりました。
BUFFALOのPC-MDVD/U2という、コンポジット端子でキャプチャできる製品を使ったのですが、これをUbuntuで動かす方法がどうしても見つからなかったので妥協しました。
キャプチャ|PC-MDVD/U2
コンポジットなので画質はイマイチです。
以下、ゲームのキャプチャに関する余談。
一般にゲーム機のキャプチャには遅延問題がつきまといます。
キャプチャ中にPCの画面に表示される映像は少なからず遅れがあるので、まともにプレイできないのです。
ですので普通は、AV分配器を使って、TVとPCに同じ映像を送り、TVでプレビューしつつプレイ/同時にPCでキャプチャという方法をとります。
ですが、Xbox360の特徴として、D端子ケーブルは二股に分かれていて、D端子とコンポジットの端子がついています。で、本体の設定でSD出力を選ぶと、D端子とコンポジットの両方に、同じ映像を出力できます。
なので、SD画質でよいならば、分配器ナシでプレビューとキャプチャが行えます。
次回につづく。
オフライン
前回のつづき。
2. キャプチャした動画をCinelerraで編集する
キャプチャした動画はMPEG-2でエンコードされています。
この形式だとCinelerraでうまく扱えなかったので(音がずれてしまう)、ffmpegで別の形式に変換します。
ffmpeg -i capture.mpg -deinterlace -vcodec libx264 -s 512x288 -aspect 16:9 -r 30 -an video.mp4
H.264コーデックのMP4ファイルに変換しています。
ちなみにこの時点で、ニコニコの16:9サイズに最適な512x288のサイズにしています。
ffmpeg -i capture.mpg -vn sound.wav
こちらは音声の書き出しです。
これで video.mp4 という映像ファイルと sound.wav という音声ファイルができたので、これらをCinelerraで読み込み、編集を行います。
Cinelerraの設定はSetting→Formatで
・Width:512
・Height:288
・Aspect ratio:16:9
・Interlace mode:Not Interlaced
あとは普通に編集を行います。
Windows Movie Makerなどのムービーソフトを使ったことがあれば、直感的にできると思います。
僕はCinelerraのマニュアルは一切読まず勘で操作しましたが、ちょっとした編集くらいはできるようになりました。
ただ、よくクラッシュするのが難点です。
編集が終わったらFile→Renderで書き出しを行います。
ここでは、映像をOGG Theora、音声をMicrosoft WAVで書き出しました。
映像の書き出しは
・File Format:OGG Theora/Vorbis
・Render audio tracksをオフ
・Render video tracksをオン
音声の書き出しは
・File Format:Microsoft WAV
・Render audio tracksをオン
・Render video tracksをオフ
で、映像ファイルと音声ファイルが作成されます。
(最初はOGG Theora/Vorbisで書き出したのですが、後でffmpegで変換したら音ずれが発生しました。ffmpegがVorbisをうまく扱えないのではと考え、WAVにしました)
3. 編集した動画をffmpegでMP4に変換する
ニコニコ動画のアップロード容量の上限が40MBなので、これに収まる範囲でできるだけ高画質な動画を狙います。
今回はゲームプレイ動画ということで、16分ほどありました。何度か映像と音声のビットレート/サンプルレートを試した結果、以下のコマンドで容量制限に収まる動画ファイルを作成できました。
ffmpeg -i 映像ファイル -vcodec libx264 -r 24 -b 250k -qcomp 0.7 -qmin 10 -qmax 51 -qdiff 8 -me_method umh -subq 7 -trellis 2 -coder ac -g 250 -bf 3 -b_strategy 1 -directpred 2 -partitions parti4x4+partp8x8+partb8x8 -me_range 32 -sc_threshold 50 -flags loop -flags2 mixed_refs+bpyramid+wpred+dct8x8+brdo -cmp chroma -refs 5 -pass 1 -passlogfile "/**ここはフルパスが必要**/passlog" -an -y out.mp4
ffmpeg -i 映像ファイル -i 音声ファイル -vcodec libx264 -r 24 -b 250k -qcomp 0.7 -qmin 10 -qmax 51 -qdiff 8 -me_method umh -subq 7 -trellis 2 -coder ac -g 250 -bf 3 -b_strategy 1 -directpred 2 -partitions parti4x4+partp8x8+partb8x8 -me_range 32 -sc_threshold 50 -flags loop -flags2 mixed_refs+bpyramid+wpred+dct8x8+brdo -cmp chroma -refs 5 -pass 2 -passlogfile "/**ここはフルパスが必要**/passlog" -acodec libfaac -ar 22050 -ab 96k -y out.mp4
2パスエンコードを行うので、2回コマンドを打つ必要があります。
オプションが非常にたくさんありますが、僕もよく理解できていません。他のサイトに載っていたもので、これがないと非常に大きな容量のファイルになってしまいました。
今回の場合は再生時間が16分と長めなのでビットレートに250kを指定していますが(-b 250k)、短い動画ではもっと大きな値にすれば画質が向上します。
音質を上げたい場合は -ar 48000 や -ab 128k などにするとよいでしょう。
ただし、ニコニコ動画はビットレートにも上限がありますのでご注意ください。
画質/音質についてはffmpegのオプションやCinelerraの書き出しを工夫することで向上させる余地があると思います。
今回はコンポジットで取り込んだ映像で、もともと画質がよくないのであまり気にしないことにしました。
長い動画でどうしても40MB以内に収まらない場合、動画を複数に分割するのも手です。
ニコスクリプトを使って自動ジャンプを設定すれば、視聴もそれほど不便にはならないと思います。
エンコードの設定はあまりに複雑でちょっと調べる気力が続かなかったので・・・とりあえず今回は、「Ubuntuでもffmpegで割と簡単にMP4が作れるよ」という趣旨ということでご容赦下さい。
以上、「Xbox360のプレイ動画をニコニコに上げる」レポートでした。
そのうちHD画質でキャプチャできる機材に挑戦してみたいと思います。
オフライン
hardyを使っています。cinelerraをインストールしようとしていますが、うまくいきません。このスレで紹介されてる方法ではだめでしたし、
http://cinelerra.org/getting_cinelerra.php#ubuntu
でもうまく行きません。
kinoはsynapticで簡単にインストールでき、ビデオカメラをieee1394に突っ込むと自動認識してキャプチャはあっけないほどでした。しかし、kinoの編集機能は限られていて大したことはできません。
それから一般的な疑問ですが、最近の高解像度ビデオをストレスなく編集したい場合どこのパソコンおすすめですか?自作パソコンショップに聞いてみたら、最新のはvistaしか動かないようです。
オフライン
今試しにリポジトリを追加しようとしたら 403 Forbidden がでました。単にリポジトリサーバの問題、という話では無いのでしょうか?
それともインストールまで行ったけれども正常に動作しないというお話でしょうか?
>最近の高解像度ビデオをストレスなく編集したい場合どこのパソコンおすすめですか?自作パソコンショップに聞いてみたら、最新のはvistaしか動かないようです
高解像度ビデオが、どの程度のものを指してるのか分かりませんが?
Intel 965P以降のチップセットマザー + Core2Dou/Quad + nVidiaグラフィックカード(ミドルレンジで十分)+ 2Gメモリ(これ以上積むなら64ビット版OSまたはPAEカーネル) + SATA2 HDD
に、Ubuntu8.04 or SuSe11 or Feodra9をインストールすれば、ストレスなく編集できると思いますよ。
オフライン
avidya による投稿:
今試しにリポジトリを追加しようとしたら 403 Forbidden がでました。単にリポジトリサーバの問題、という話では無いのでしょうか?
それともインストールまで行ったけれども正常に動作しないというお話でしょうか?
舌足らずですみません。そういうことです。インストールするところまで行ってません。サーバの許可が出るまで試すか、cinelerraのところに苦情を言うか、でしょうか。
高解像度の話ですが、別に近い将来HDカメラを買うとか、映画を撮るとかそういう計画はないのですが、最近のビデオ環境がどんどん高解像度になり、また安くなっているので、知識として知りたいと思ったのです。
オフライン
今試したらsynapticで次のようなエラーメッセージが出ました。
cinelerra:
依存 libasound2 (>1.0.16) しかし 1.0.15-3ubuntu4 をインストールする必要があります
1.0.15-3ubuntu4は入っています。どうすればいいのかちょっと分かりません。
オフライン
すみません。
cinelerraのサイトにある説明をちゃんと読んで自分のハードウェア環境に合うのを選んだらインストールできました。お騒がせしてすみません。
一見、kinoより複雑そうです。使いこなすのに時間がかかるでしょう。
オフライン
ffmpeg のビルドですが、最新の ffmpeg を Ubuntu 8.04 でビルドすると libx264.c の 224 行目でコンパイルエラーが出ます。
実は先月くらいからこのエラーが出ていたのですが、今日ビルドしてみて、コンパイルエラーが出ることを確認し、該当部分の #define されている定数が、使われていないことが判明しました。ちなみに前回エラーの発生を確認した時はソースの後ろの case 文で使用されていたのですが、今日確認するとそれが消されていました。
ビルドするときは libx264.c の 223、224 行目をコメントアウトしてください。
# それにしても ME_TESA と X264_ME_TESA って何だ?
# ffmpeg ってソースにコメントがないからさっぱりわからん。
私が ffmpeg を利用する際に参考にしているサイトを紹介しておきます。
http://mobilehackerz.jp/archive/wiki/index.php?cmd=read&page=FFMPEG%2F%A5%D3%A5%C7%A5%AA&word=ffmpeg%20usage
ほとんど必要なオプションが網羅されているので、便利ですよ。
# 最近はニコニコや zoome からダウンロードした動画を DVD Video にして、
# DVD-R に焼いて TV で見れるようにしています。
# もちろん画質の劣化を抑えるために padleft、padright、padtop、padbottm
# オプションはかかせません。
あ、書くの忘れてましたが、mp3 を使う場合、本家 lame をダウンロードして、ビルドしておいてください。そうしないと ffmpeg のビルド時にヘッダーファイルがないよ、ってエラーがでます。
http://lame.sourceforge.net/index.php
lame のビルドは普通に ./configure、make、sudo make install でできます。
あ゛あ゛、混乱してきた。ffmpeg のビルド方法が毎回変わるんだもん。今日のビルド方法を以下にザクッとまとめました。
ffmpeg のビルド方法が毎回違う件
ffmpeg 最新 trunk の正しいビルド方法がやっとわかりました。以下にザクッとまとめました。
やっと ffmpeg がすっきりした件
それと別のスレッドで mencoder での flv から mp4 への 2 pass エンコードの方法を、fueryuejing さんが解説してくださってます。
記事のご紹介ありがとうございます。皆さんのお役に立てば。 :)
紹介いただいたトピックを編集中に見つけたのですが、avidemux がかなり使えそうなのでこちらのトピックでも宣伝しようと思いまして :P お邪魔しました。
ffmpeg/libavicodec x264/libx264 libxvidcore faac/libfaac の GUI フロントエンドとして有用だと思います。
エンコードや remux は決まりきった作業なので、慣れてしまえば端末から ffmpeg や mencoder などで作業した方が効率的ですが、windows から移行したばっかりで「コマンドライン怖いよ!」って人に紹介するのに丁度良いアプリだと感じました。(初心者さんに mencoder 紹介するのは気が引けます)
avidemux の動画編集は飾り程度なので、動画編集を cinelerra で、エンコードと remux を avidemux で行えば全部 GUI で行けるかなぁと。
ところで、Linux 上で Bフレーム入りの動画を mp4 に変換するのは鬼門のようですね。MPEG4IP の mp4creator や GPAC の mp4box などを使う必要がありそうです。mp4creator は公式リポジトリ内に見つけられませんでした。mp4box は MP4Box という名前で パッケージ gpac 内に含まれていました。(gpac は mkv の mkvtoolnix に相当?まだ使っていないのでこれ以上詳しいことは分かりません) あるいは最新版の ffmpeg/libavformat ならまともな mp4 を吐き出せるんでしょうか?う〜む。 :(
追記:
packages.ubuntu.com で検索してみたら mpeg4ip-server 内に mp4creator が入っていました。 :/ わかりにくいっ、と言い訳しつつ。時間か機会かやる気があれば mp4 コンテナまわりの話をまとめてjpフォーラムに投稿しようかな、と思っています。
関連情報:
avidemuxのサイト:
http://www.avidemux.org
※クロスプラットフォームなソフトなので日本語情報はゴロゴロしていました。ググればすぐ手に入ります。
$ apt-cache search avidemux
avidemux - a free video editor - gtk version
avidemux-cli - a free video editor - command line version
avidemux-common - a free video editor - Internationalization files
avidemux-qt - a free video editor - qt version
$ apt-cache search gpac
gpac - multimedia framework based on the MPEG-4 Systems standard
libgpac-dev - multimedia framework based on the MPEG-4 Systems standard
libgpac0.4.4 - multimedia framework based on the MPEG-4 Systems standard
$ apt-cache search mpeg4ip
libmpeg4ip-0 - end-to-end system to explore streaming multimedia
libmpeg4ip-dev - end-to-end system to explore streaming multimedia
libmpeg4ip-doc - end-to-end system to explore streaming multimedia - documentation
mpeg4ip-server - end-to-end system to explore streaming multimedia
mpeg4ip-utils - end-to-end system to explore streaming multimedia
$ apt-cache search atomicparsley
atomicparsley - program for reading, parsing and setting metadata into MPEG-4 files
# 何だい mp4 mp4 って。mkv でいいぢゃん、って大抵の携帯動画プレーヤで再生できないんじゃ無理か…… :(
# ところで cinelerra ってどう読むんでしょう。チネレッラ? シネレラ? う〜ん、わからないや。
ではでは。作品作りに幸運を。 ;)
最後の編集者: fueryuejing (2008-07-22 15:46:36)
オフライン