2011-10-27 4 views
0

私は、ディレクトリ内を反復してすべてのマルチメディアファイルを見つけるC++プログラムをテストしています。私は反復ルーチンを使用し、すべてのファイルに対して、ストリーム情報を見つけるためにav_find_stream_infoのようなlibav関数を使ってファイルをオープンしようとしました。それは、ビデオや画像などのマルチメディアファイルでうまく動作しますが、問題はオーディオやビデオの一部のファイルを認識することです。たとえば、.oファイルの中にオーディオストリームがあるとします。私もav_read_frameを使用しようとしましたが、エラーなく正常に動作しました!私は拡張子でフィルタリングするのを避けたいですが、再生可能なファイルを見つけるための他の解決策はありますか?ffmpegでファイル情報を取得すると、オブジェクトファイルは「オーディオ」として認識されますか?

ありがとう

答えて

1

これは暗い芸術です。あなたはメディアファイルとして偽装することができるよく見られる特定のファイルタイプを除外しなければなりません。あなたは既にあなたのためにすべての仕事をしているパッケージ、それはfileパッケージとそのlibmagicコンポーネントです。あなたのプラットフォームには既にそれがあるかもしれません。man 3 libmagicを試してみてください。または、file-develパッケージがあるかどうかを確認してください。

+0

拡張子ベースのフィルタリングに戻しておけば、このフィルタリングに合格したファイル(avi、 mpegなど)。とにかくおかげさまで提案に感謝します! – cpl

関連する問題