このサイトにあるvideostab.cppのソースコードは入力動画のブレを補正した動画を出力してくれるものです。コンパイルして、
./a.out 動画名.avi
と実行すると、補正前の動画と補正後の動画が並んで表示されます。補正後の動画のみを保存したいので、適当な場所に
VideoWriter writer("x.avi", VideoWriter::fourcc('D', 'I', 'V', '3'), 24.0, Size(640,480));
と
writer << cur2;
を加えました。(詳しい経緯はこちらで)
すると、aviファイルに関しては、適切に変換後の動画x.aviが作成されるのですが、同様なことをmp4ファイルで行おうとしてもうまく行きません。というのも、
VideoWriter writer("x.mp4", VideoWriter::fourcc('M', 'P', '4', 'V'), 24, Size(640,480));
として、コンパイル後に
./a.out 動画名.mp4
を実行すると、プログラムが作動して、変換前と変換後の動画が並んで表示されるのですが、保存されたx.mp4を開くことができません。また、保存されたx.mp4動画ファイルをwindowsOSに転送してWindows環境で開こうとしても、開くことができませんでした。
解決するために、mp4ファイルをaviファイルに変換して同様のことをしてもダメでした。どうしたらよいでしょうか。アドバイスをいただけると幸いです。
**追記
コマンドラインをみると、
OpenCV: FFMPEG: tag 0x5334504d/'MP4V' is not supported with codec id 13 and format 'mp4 / MP4 (MPEG-4 Part 14)'
OpenCV: FFMPEG: fallback to use tag 0x00000020/' ???'
というエラーが生じされてました。OpenCVのバージョンは3.2.0, ffmpegのバージョンは0.11.1です。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/11 07:43 編集
2018/07/11 07:43
2018/07/11 07:47
2018/07/11 07:55 編集
2018/07/11 08:01
2018/07/11 12:55
2018/07/12 00:22
2018/07/12 00:30
2018/07/12 06:53 編集
2018/07/12 07:34