動画の編集memo

Thu 07 Oct 2004

録画した動画などを、閲覧/保存しやすいように変換したり編集したりする時の話し。 というか、こと編集/再圧縮となると情報が極端に少ないので、 手探りで色々試したメモ。まだまだ謎だらけ。

aviないしmpeg2でキャプチャーした動画を、編集/再圧縮してavi(ffmpeg mpeg4)で 保存する事を目的として書いています。(音声はlame mp3を想定しています)

録画についてはこちら


フリーの動画編集ツール(GUI)としては、
avidemux
Video maid
Cinelerra
LVE(Linux Video Editor)
なんかがあるみたいです。
mpegとaviと両方扱えるのはavidemuxだけっぽいです。 CinelerraとLVEはsrc.rpmかspecfileが供給されるようになったら試してみたい。

コマンドラインから変換などをするツールとしては、
MPlayerに含まれるMEncoder
transcode
あたりでしょうか。avidemux2もコマンドラインで動作させることが出来ます。

余分な所をカットしたり再圧縮したりというのが主な用途なので、 ここんとこメインで使っているのは mencoder と avidemux の組合せです。


avidemux

website: avidemux (source forge)

導入に関しては http://shino.pos.to/linux/avidemux.htmlの方が詳しいです。 今はVine-2.6向けだそうですが、VineSeed仕様にすれば2.x系も似た手順で インストール出来ると思います。

直感的に操作出来る編集ツールです。

が、そのせいか、マニュアルがいい加減なのしかないです。

mpeg2ファイルを開く場合は、indexを作るかと聞かれた後に audio codecを 選択しろと出てくるので、DVDから編集するのであればたぶんAC3を、 アナログキャプチャー物ならmpeg audioを選べば良いと思います。 わからなかったら、scan audioを押せば検出してくれます。

audio codecでuncompressedにすると、元のファイルの音声がそのまま 保存されるようで、pcmになるわけではないようです。

ffmpeg mpeg4: configureについてのメモ

解かってる範囲で少し。

V Filter/A filter共にV Process/A ProcessのボタンをONにしておかないと、 保存時に設定したfilterが有効とならないばかりか、 V Codec/A Codec の設定も反映されないのに注意。

Main
Encoding type: two pass 圧縮時間よりも保存品質を優先するなら、これを選ぶ事になると思います。
target size(MBytes) 出来上がり時のおおまかなファイルサイズを指定します(音声別?)
Quantization
Macroblock decision defaultは 2: Rate distortion 。 なんとなく 1: Fewest bits(vhq) にしている。
Trellis quantization これをチェックして何が変わるのかわからなかった...
Ratecontorol
Filesize tolerance 実際に保存してみた感じで、瞬間最大bpsっぽい気がするけど、 書いてある事からすると違う気がする...

video filterはこれが良いという方法は無いので、 気に入るまで何度も試行することになるでしょう。 filterを通す順番で効果が変わります。

CMカットなどが済んだら、edit→save editlistで.edlファイルとして 保存するのが吉。再エンコードして気に入らなかったら、後日元のファイルから やりなおさずに済みます。 また、この.edlファイルが有れば、コマンドラインから再エンコードさせる 事が出来るので、手作業でやりなおす手間が省けます。 avidemux2 --helpで、たぶんオプション一覧が出てくると思います。
おおよそ

avidemux2 --load hogehoge.edl --video-process --save hogehoge.avi --quit

こんな感じでやればいいみたいです。

以下、自分なりに各フィルタの感想(?)です。

VFilter
Crop 画面の余分な部分をカットするフィルタ。 cropで指定する数字は、何故か偶数にしないと絵が化けます。
Resize サイズを指定する他に、アンチエイリアス(?)の方法を指定します。 Bilinear,Bicubic,Lanczos3の順に時間がかかる模様。 16 round up というチェックボックスの意味は不明。
MPlayer Resize Resizeとの違いがわからず。
Mplayer ivtc 運が良ければスムーズな24fps動画が出来るフィルタ。大抵カクカクになる...。
Deinterlace アナログで録った場合はほぼ必須。数値を変えても違いが良くわからず。 aviでキャプチャした時は問題無いが、mpeg2だとこれをかけても横スジ(?) が残るのが難点。
Lavcodec Deinterlacer Deinterlaceフィルタで縞が残っちゃう場合は使うといいかも。 しかし、画像がなんとなくギザギザになる。
Kernel Deint 2.0.22から追加。 DeinterlaceとLavcodec Deinterlacerのいいとこ取りみたいな感じ。 動く時にギザギザ感が強くなるのはLavcodec deinterlacerと同じ欠点。
Sharpen ほとんど気安めみたいなもんです。
Median 使うとボケちゃいます。どうしてもノイズが取れない時の最終手段。
Median(5x5) Median(5x5)よりさらにボケちゃいます。
Gaussian smooth Medianよりさらに激しくボケます。
Flux Smooth あまりきつく掛けると、変な映り込みみたいなのが現れるのに注意。
Temporal Cleaner あまりきつく掛けると、変な映り込みみたいなのが現れるのに注意。
MPlayer HQDenoise3D 数値を大幅に変化させてもわかりにくいが、 掛けて置いた方が確実に良くなる。
MPlayer Denoise3D avidemuxのwebsiteによると、MPlayer HQDenoise3Dの方が僅かに優秀だが、 こっちの方が速いからお薦めって書いてある。
force postprocess 何でしょう?これ?
Soften Medianを使うよりはいいかも。

mencoderと組み合わせて使ってみる

うちの場合mpeg2で取り込むとavidemux2だけの編集では今一つなので、 いったんmencoderで調整してからavidemux2でCMカットをして ffmpeg mpeg4の2-pass保存をするようにしています。

mencoder hogehoge.mpg \
-oac mp3lame -lameopts mode=0:cbr:br=128 -af volume=-10 \
-ovc lavc -lavcopts vcodec=huffyuv:vstrict=-1 \
-vf detc=dr=1,crop=708:468:8:8,scale=640:480,pp=de/lb/tn \
-ofps 23.976 -o hogehoge.avi

上の例では、音量調整(-10db)、cropping、resize、 deinterlaceなどを行ってhuffyuvにしています。 30分でおよそ10GB程度のファイルが出来上がります。 音声はmp3で再圧縮してしまっていますが、-oac pcmにすると 途中から音が駄目になってしまうので、avidemux2でuncompressed audio にして保存します。 pp(post process filter)はとりあえずな感じで、 これだけだとゴーストが残ったままだったりします。 もっと良い組合せがあるかもしれません。


mencoderで変換

mencoderはキャプチャも変換も書式が似てるので、 慣れると簡単になってきます。
基本的な書式は、

という感じです。

下は、拾って来たrealmediaファイルを変換する時の例です。

mencoder hogehoge.rm \
-oac mp3lame -lameopts mode=0 \
-ovc lavc -lavcopts vcodec=mpeg4 \
-o hogehoge.avi

-af / -vf は -ovc / -oac が copy の時は効きません。
vcodecのvbitrateを指定しないとデフォルトの800kbpsになります。 2-passにしようとすると、うちの場合segmentation faultして失敗します...
ちゃんと出来るなら、avidemux2でhuffyuv(可逆圧縮らしい)で保存して、 こっちで保存するのに....

録画したmpeg2ファイルを 映像 → huffyuv / 音声 → pcm にしてから、 別のソフトで加工する場合の例。

mencoder hoehoe.mpg \
-ovc lavc -lavcopts vcodec=huffyuv:vstrict=-1 \
-oac pcm \
-vf crop=708:468:6:6,scale=640:480,pp=de/lb/tn \
-af volume=-5dB \
-o hoehoe.avi

-oac pcm の場合は -af も有効になります。 croppingはアバウトにやっているので、自分の環境に合うように調整しましょう。 -vf で 640x480 にして deinterlace と temporal noise reducer を掛けています。 他のソフトでcroppingしたりフィルタを掛けるなら、-vfや-afの部分は削って下さい。


Links


Top PC guide Linux memo win memo