サブタイトル:「mer2のマイノリティ・レポート(笑)」 --- 最近忍者ブログの仕様が変わったようで、一部の画像が見えなくなってますが、画像のURLコピペで見られます。(どうしよう困ったな) --- ご用件など、ございましたらtwitterまでどうぞ。
前記事ついででYouTubeを眺めてたら、こんなのも有った。この方法(正式名称が有ったと思ったのだが、忘れた。ぐぐるキーワードすらうかばない。)は静止画版は見かけても、動画版というのは見た事が無いのよね。そもそもそんなこと可能なのだろうか。ああ、気になってきた。実験したい。
さあ、ffmpegの出番です。これ、やってみたかったのよ。
ffmpeg:
最新のFFMpegを導入しよう
こちらからダウンロード
ImageMagic:
本家
参考:
ImageMagick: Command-line Tools: Convert
ツールのぺえじ - convert コマンド結果一覧
どちらもコマンドラインなプログラムです。コマンドプロンプトを立ち上げて、実行ファイルの有るフォルダにパスを通しておきましょう。
・ pathの確認
>path
・ 実行ファイルが"D:\ffmpeg"に有るならば、
>path=%path%;D:\ffmpeg
これをffmpegとImageMagicの両方に対して行なう。
・ 確認
>ffmpeg
>convert
でちゃんと反応が有れば準備オーケー。
手持ちのサイドバイサイドな3D動画を加工する事にします。
・ まず、動画を連続画像に分解します。
>ffmpeg -i TEST.avi TEST-%04d.png
うわっ、本当にできた。面白い。
・ 各画像をImageMagickでサイドバイサイドな画像から左右の画像に分離させます。
もしかしたらもっと要領のいい方法が有るのかもしれないけど、これしか見つかんなかった。ImageMagickできる事多過ぎ。
こんな手順になります。
・ 以下のコマンドで、元画像が4つに分割されます。
>convert -crop 50% ./test.png dest.png
こんなふう。
dest-0.png 左上
dest-1.png 右上
dest-2.png 左下
dest-3.png 右下
・ 左画像は左上と左下
>convert -append dest-0.png dest-2.png dest-L.png
・ 右画像は右上と右下
>convert -append dest-1.png dest-3.png dest-R.png
これで1フレーム分の左右の画像が取り出せました。さらに、
・ 50%side-by-sideな場合はさらに横に伸ばす。
>convert -resize 200x100% dest-L.png dest-LL.png
>convert -resize 200x100% dest-R.png dest-RR.png
この作業を全フレーム分行なわなければなりません。forコマンドを使います。
変換元のファイル名は「TEST-xxxx.png」とします。「tmp-xxxxx.png」に変換します。加工中にファイル名の通し番号が5桁になっている点にご注意下さい。
こんなんなりました。
>for %I in (TEST-*) do convert -crop 50% %~nI.png dest-%~nI.png && convert -append dest-%~nI-0.png dest-%~nI-2.png %~nI1.png && convert -append dest-%~nI-1.png dest-%~nI-3.png %~nI2.png && del dest*.png
うぎゃー。本当は各行を分けたほうが分かりやすいのですが、4分割の時にファイル名のフォーマットが変わってしまうので、ファイル名をforコマンドに確実に渡すにはマルチステートメント(&&)せざるを得ませんでした。これももしかしたらもっと上手い方法が有るかもしれません。
50%side-by-sideな場合はさらにこうなります。ぎゃー。
>for %I in (TEST-*) do convert -crop 50% %~nI.png dest-%~nI.png && convert -append dest-%~nI-0.png dest-%~nI-2.png %~nI1.png && convert -resize 200x100% %~nI1.png %~nI0.png && del %~nI1.png && convert -append dest-%~nI-1.png dest-%~nI-3.png %~nI2.png && convert -resize 200x100% %~nI2.png %~nI5.png && del %~nI2.png && del dest*.png
これで素材ができあがりました。しかしffmpegで連続画像から動画を作るには、ファイル名の通し番号が1から始まる連番じゃないと駄目なんだそうです。間が空いているとエラーになります。確かDOS時代にはリナンバー系のテクニックが有ったと思ったんだけど、駄目だ、忘れた。
悔しいけどwindows版のリナンバーツールを使う事にしました。このへんから適当にどうぞ。私はこれを使ってみました。うーん、ちょっといまいち。だけどちゃんとリナンバーはできました。
それでもまだ問題が。どうもpngだと動画作成の時にエラーが出てしまいます。jpgならいけるので、jpgに変換します。
>for %I in (tmp-*) do convert -quality 100 %~nI.png %~nI.jpg
これでやっと通りました。
>ffmpeg -r 29.97 -i tmp-%05d.jpg test.avi
さあ、どんなでしょうか。
駄目だこりゃ。どっと疲れが。
毎秒30フレームは速すぎるので10fpsでいってみましょう。
>ffmpeg -r 10 -i tmp-%05d.jpg test.avi
何か基本的な認識を誤っていたような気がします。これは失敗ですね。お粗末様でした。
さあ、ffmpegの出番です。これ、やってみたかったのよ。
ffmpeg:
最新のFFMpegを導入しよう
こちらからダウンロード
ImageMagic:
本家
参考:
ImageMagick: Command-line Tools: Convert
ツールのぺえじ - convert コマンド結果一覧
どちらもコマンドラインなプログラムです。コマンドプロンプトを立ち上げて、実行ファイルの有るフォルダにパスを通しておきましょう。
・ pathの確認
>path
・ 実行ファイルが"D:\ffmpeg"に有るならば、
>path=%path%;D:\ffmpeg
これをffmpegとImageMagicの両方に対して行なう。
・ 確認
>ffmpeg
>convert
でちゃんと反応が有れば準備オーケー。
手持ちのサイドバイサイドな3D動画を加工する事にします。
・ まず、動画を連続画像に分解します。
>ffmpeg -i TEST.avi TEST-%04d.png
うわっ、本当にできた。面白い。
・ 各画像をImageMagickでサイドバイサイドな画像から左右の画像に分離させます。
もしかしたらもっと要領のいい方法が有るのかもしれないけど、これしか見つかんなかった。ImageMagickできる事多過ぎ。
こんな手順になります。
・ 以下のコマンドで、元画像が4つに分割されます。
>convert -crop 50% ./test.png dest.png
こんなふう。
dest-0.png 左上
dest-1.png 右上
dest-2.png 左下
dest-3.png 右下
・ 左画像は左上と左下
>convert -append dest-0.png dest-2.png dest-L.png
・ 右画像は右上と右下
>convert -append dest-1.png dest-3.png dest-R.png
これで1フレーム分の左右の画像が取り出せました。さらに、
・ 50%side-by-sideな場合はさらに横に伸ばす。
>convert -resize 200x100% dest-L.png dest-LL.png
>convert -resize 200x100% dest-R.png dest-RR.png
この作業を全フレーム分行なわなければなりません。forコマンドを使います。
変換元のファイル名は「TEST-xxxx.png」とします。「tmp-xxxxx.png」に変換します。加工中にファイル名の通し番号が5桁になっている点にご注意下さい。
こんなんなりました。
>for %I in (TEST-*) do convert -crop 50% %~nI.png dest-%~nI.png && convert -append dest-%~nI-0.png dest-%~nI-2.png %~nI1.png && convert -append dest-%~nI-1.png dest-%~nI-3.png %~nI2.png && del dest*.png
うぎゃー。本当は各行を分けたほうが分かりやすいのですが、4分割の時にファイル名のフォーマットが変わってしまうので、ファイル名をforコマンドに確実に渡すにはマルチステートメント(&&)せざるを得ませんでした。これももしかしたらもっと上手い方法が有るかもしれません。
50%side-by-sideな場合はさらにこうなります。ぎゃー。
>for %I in (TEST-*) do convert -crop 50% %~nI.png dest-%~nI.png && convert -append dest-%~nI-0.png dest-%~nI-2.png %~nI1.png && convert -resize 200x100% %~nI1.png %~nI0.png && del %~nI1.png && convert -append dest-%~nI-1.png dest-%~nI-3.png %~nI2.png && convert -resize 200x100% %~nI2.png %~nI5.png && del %~nI2.png && del dest*.png
これで素材ができあがりました。しかしffmpegで連続画像から動画を作るには、ファイル名の通し番号が1から始まる連番じゃないと駄目なんだそうです。間が空いているとエラーになります。確かDOS時代にはリナンバー系のテクニックが有ったと思ったんだけど、駄目だ、忘れた。
悔しいけどwindows版のリナンバーツールを使う事にしました。このへんから適当にどうぞ。私はこれを使ってみました。うーん、ちょっといまいち。だけどちゃんとリナンバーはできました。
それでもまだ問題が。どうもpngだと動画作成の時にエラーが出てしまいます。jpgならいけるので、jpgに変換します。
>for %I in (tmp-*) do convert -quality 100 %~nI.png %~nI.jpg
これでやっと通りました。
>ffmpeg -r 29.97 -i tmp-%05d.jpg test.avi
完成です!!
さあ、どんなでしょうか。
駄目だこりゃ。どっと疲れが。
毎秒30フレームは速すぎるので10fpsでいってみましょう。
>ffmpeg -r 10 -i tmp-%05d.jpg test.avi
何か基本的な認識を誤っていたような気がします。これは失敗ですね。お粗末様でした。
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]
カテゴリー
リンク
アーカイブ
アクセス解析
カウンター
カレンダー
10 | 2024/11 | 12 |
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 |
プロフィール
HN:
mer2
性別:
男性
趣味:
野良猫の餌付け