OpenCVが使えるaviファイルの種類はどういったものなのでしょう?
携帯の動画を取り込もうとffmpegというフリーソフトを使い3gpをaviに変換し、それを読み込もうとしたのですがcvCaptureFromAVI(filename)の値がNULLになるらしく、うまくいきません。
同一のプログラムで同じ場所に別のaviファイルを置いたらうまく動いたので、パスの指定ミスとかでは無いと思うのですが・・・
ちなみに、プログラム内からsystem関数を呼び出す形でffmpegを
使用し、system("\"C:~略~\\./ffmpeg\" -i \"test.3gp\" -vcodec mjpeg -acodec mp3 test.avi");という形で携帯の動画を変換しました。
携帯の動画(3gp)をOpencvで使えるようにする方法を教えてください。
よろしくお願いします。
No.9ベストアンサー
- 回答日時:
「MediaCoderというソフトを使って変換し」てうまくいったなら、
それをまねてみてはどうですか?そのアプリは内部で ffmpeg を使って
変換しているのでないんですかね?コマンド処理らしいのが、
MediaCoder のウィンドウの下の方に出てるじゃないですか^^
MediaCoder のインストールフォルダの下の codecs ってフォルダに
コマンドライン用のプログラムがあるようですけど?
オプションのつけ方とかまねれば、system() にそれらの文字列を
渡して実行してやればうまくいきませんかね?^^
codecsというフォルダをプログラムと同じフォルダにコピーし、MediaCoderのコマンド処理を真似たところ、avi変換・opencvでの
読み込み共にうまく実行することができました!!
ご助言ありがとうございます。
No.10
- 回答日時:
MediaCorder0.6.0 っていうのをインストールしてみました。
「変換」の「コンソールウィンドウ表示切替」を選択して、
コンソールウィンドウを出して、変換実行すれば、内部の処理が見れるようですよ。それをまねればできるんじゃないですか?
コマンドラインのプログラムを動かしているようですし。ffmpeg のほかの
プログラムも使っていれば、MediaCorder のインストールフォルダに
あるやつを呼んでしまえばいいのでは?^^;
No.8
- 回答日時:
というのもありました。ここでも AU は Debian ではどうのこうの言ってますね。他のLinuxOSやWindowsでもダメだとは書いてないですが。。
No.7
- 回答日時:
「AU は普通の3gp形式ではないので他社携帯とは違います。
」とかありましたね。http://q.hatena.ne.jp/1181637587
上のURLからリンクされてる、以下のURLに、
なんとか変換したとか書いてるHPがありましたよ。
http://www.deftrash.com/blog/archives/2005/05/li …
No.6
- 回答日時:
-ar オプションでレートを変えればうまくいくかもどうこう書いてますね^^
-ar 44100
-ar 22050
-ar 11025
とか試してみればいかがでしょう?^^
迅速なご対応ありがとうございます。
おっしゃるとおりにしたところ、ffmpegでのエラー?は消えました。
ただ、ffmpegで変換したaviファイルはopencvが読み込んでくれません。
また、試しにMediaCoderというソフトを使って変換した所、opencv読込みがうまくいきました。ただ、できればプログラム上から呼び出したいので、ffmpeg等でうまくいくようにしたいです(もっとも私に動画拡張子変換プログラムをすんなり書く実力があれば別ですが(泣))
理由を調べるため、真空波動研Liteというソフトを使ってaviファイルの種類を調べてみました。
○:opencvで読み込めたケース
×:opencvで読み込めないケース
○[MediaCoderでの携帯動画を変換(形式XviD)]
176x144 12Bit XviD 1.1.2 Final 25.00fps 286f 168.83kb/s
INFOTAG [RIFF(AVI1.0)] 00:00:11.439 (11.439sec) / 250,112Bytes
×[ffmpegで変換したaviファイル]
176x144 24Bit Motion JPEG(MJPG) 15.00fps 172f 274.25kb/s
MPEG2.5-LayerIII 11.03kHz 64.00kb/s CBR Mono
[RIFF(AVI1.0)] 00:00:11.466 (11.466sec) / 500,008Bytes
×[QTConverterで変換したaviファイル]
176x144 16Bit 無圧縮 15.00fps 173f 6084.09kb/s
PCM 22.05kHz 16Bit 1ch 352.80kb/s
[RIFF(AVI1.0)] 00:00:11.533 (11.533sec) / 9,285,618Bytes
×[MediaCoderで変換したaviファイル(形式Motion JPEG)]
176x144 24Bit Motion JPEG(MJPG) 25.00fps 286f 518.00kb/s
INFOTAG
[RIFF(AVI1.0)] 00:00:11.439 (11.439sec) / 749,424Bytes
×[その他のaviファイル(一例)]
720x480 24Bit DV Codec(DVSD) / DV Codec(DVSD) 29.97fps 791f 28857.73kb/s
[RIFF(AVI2.0)] 00:00:26.393 (26.393sec) / 95,250,944Bytes
という結果になりました。
XVid形式で変換を行ったものがうまくいっているような気もしますが、
なんとも言えません。XVid形式の変換をサポートし、且つコマンドラインインターフェイスがあるものってないでしょうか?
No.5
- 回答日時:
英語のHPですが、
http://www.maysville-linux-users-group.org/ftopi …
そのエラーメッセージはメジャーじゃない云々のあとに、
Hz の変換すればいいとか書いてました。
参考になりますか?
No.4
- 回答日時:
ffmpeg が使用するバッファ領域が小さい(あるいは変換しようとしている
もとの 3gp ファイルが大きい)のが原因かもしれないってことですか^^
インストール時とかに、バッファサイズの指定のオプションなどあったんですか?
この回答への補足
ffmpeg.exeは元々「携帯動画変換君」というフリーソフトをダウンロードした際に一緒についてきたので、そこから持ってきました。
ですので、バッファサイズの指定のオプションなどに関してはよく分かりません。
元の3gpファイルが大きいということは無いと思います。
今回試したのはせいぜい100KB程度の物ですし・・・
No.2
- 回答日時:
その失敗したという 3gp のファイルを、端末から、
コマンドラインで変換しようとしても失敗するのですか?
携帯は、ドコモ?それとも AU ですか?
この回答への補足
拡張子変換自体の失敗というよりは、
opencvを使ってファイルを読み込むときに、
そこに存在するはずのaviファイルが見つからないという
状況になっている感じです。
恐らく、aviファイルの圧縮方法とかの違いによってopencvが対応
していないとかではないかと勝手ながら推測しているのですが、
どうしてよいのかさっぱり分からず・・・
ちなみに携帯はAUです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 画像編集・動画編集・音楽編集 ffmpegでppmからmp4を作成したい 1 2023/04/20 10:43
- フリーソフト .264という動画ファイル 2 2022/07/12 11:30
- デジタルカメラ Windows8.1PCに動画、静止画を取り込めてムービーメーカーで動画編集できるオススメの6000 2 2022/11/07 12:10
- その他(コンピューター・テクノロジー) ffmpeg 動画から複数の箇所を指定して、一度の作業で同時に切り出したい 1 2022/07/03 08:35
- その他(プログラミング・Web制作) VScodeでpythonプログラムの関数を実行したい 2 2022/07/13 19:24
- その他(OS) Windowsで大量の画像サイズを半自動で変更する方法 6 2023/02/17 08:45
- フリーソフト フリーソフト[フリーオンライン動画兼音声変換ソフト]縦長になってしまう 2 2022/07/11 08:11
- iPhone(アイフォーン) 携帯は2年ごとに買い換える?Iphoneの更新プログラム 16 2023/08/01 18:38
- Excel(エクセル) EXCELマクロでandroidタブレットから取りんだJPEGファイルをうまくセルに貼り付けられない 2 2022/07/31 15:03
- docomo(ドコモ) dアカウントの携帯電話番号が登録できない。ワンタイムコードがSMSに届かない。 2 2023/07/09 23:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
緯度、経度の 10進法と 60進法...
-
C/C++→JAVAに変換するツール
-
10進数をBCDに変換する方法
-
bmp→jpgに、jpg→bmpに
-
Excel-VBAのmsgBox()の不思議
-
MATLABのMATファイル をC言語...
-
VB.NETをJavaに変換するツール...
-
数値英単語変換プログラム
-
画像ファイル変換(Tiff→PDF)
-
エクセルのvbaで検索ボタンを作る
-
Mac 乗数の入力方法
-
VC++2005 CStringをshortに変換
-
c++でmatからvectorへの変換の...
-
UTF8→ShiftJISに変換したいです!
-
画像ファイルから.icoフォーマ...
-
16進数を10進数文字列に変換する
-
魚眼レンズの画像処理
-
分を時間に変換するプログラム
-
家電製品の電力周波数を変える機械
-
shurikenについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
緯度、経度の 10進法と 60進法...
-
Excel-VBAのmsgBox()の不思議
-
Mac 乗数の入力方法
-
家電製品の電力周波数を変える機械
-
3のつく数字と3の倍数のみを表...
-
bmp→jpgに、jpg→bmpに
-
10進数をBCDに変換する方法
-
【EXCEL】カナ、ひらがなを英字...
-
StrConvの使い方について教えて...
-
分を時間に変換するプログラム
-
画像ファイル変換(Tiff→PDF)
-
マンセル⇔XYZ,RGB変換式或いは...
-
C/C++→JAVAに変換するツール
-
VB6からVB2010への変換について
-
c++でmatからvectorへの変換の...
-
DOSコマンドでの文字コード変換...
-
VB.NETをJavaに変換するツール...
-
SJIS⇔UTF-8の文字コード...
-
なぜ通信には16進数文字列が使...
-
C#でのpngからbmpへの変換について
おすすめ情報