FFmpeg( "'X'、 '2'、 '6'、 '4' '' FOURCC)を使ってOpenCV 3でh264ビデオを書くときに問題があります。私はそれまでのところすべての関連記事を見てきましたが、何も助けてくれません。コード:OpenCV 3からLinuxにFFmpegでx264を書き込む
cv::VideoWriter writer(output_path.string(), CV_FOURCC('X','2','6','4'), 60, frame_size);
出力:
OpenCVの:FFMPEG:タグ0x34363258/'X264' は、コーデックID 28と形式ではサポートされていない 'MP4/MP4(MPEG-4パート14)' のOpenCV :FFMPEG:フォールバック 使用タグ0x00000021/'!'
結果のビデオは非常に小さく(バイト単位)、判読できません。 four_ccを-1に設定すると、FFmpegから "unknown tag"が返されます。私は、他の人が示唆しているように、コーデックを選択するプロンプトを表示しません。
OpenCVの3つのDOC状態:
MP4コンテナとFFMPEGバックエンドはネイティブFOURCC コードとして他の値を使用します。あなたはFOURCCコード変換についてOpenCVの から警告メッセージを受信することができるので、ObjectTypeを参照。彼らはrefrence H264/x264のがリストされていない、とearlier SO postsは、適切なコードとしてすべてのリストX.2.6.4に思えるので、私は、その文を解釈するかどうかはわかりませんページ
。 H.2.6.4を使用すると、実際には同じ出力が得られます。
提案や回避策はありますか?
P.S.私が代わりにMP4のMKVコンテナを使用してみました:ffmpegのは、それはそれは--enable-libx264
EDITで構成されたことを示しています、最新のUbuntuメンテナからです。サポートされていないタグについての警告はなくなりましたが、結果のビデオはまだ読めません。
私はこの問題を解決する方法を伝えることはできませんが、 'VideoWriter'はあまり強力ではありません。あなたは、おそらくいくつかの作業形式でビデオを保存し、ffmpegでH264に変換する必要があります。 – Miki
@Miki opencv行列をx264_picture_tに正しく変換してx264を直接使う方法が分かっているなら、それはうまくいくかもしれません。私はYUV_I420に変換し、x264_picture_tのフィールドを手動で設定しようとしましたが、これまでに失敗しました。 –