プログラムでファイルの実際のタイプを判別しようとしています。そのためには、例えばFFMPegを使わなければならないようです。
アップロードされたファイルが実際にMP4またはFLV(フラッシュビデオの場合)[またはWebM(HTML5の場合)]であるかどうかを確認したいと思います。FFMPegの-i演算子は知っていますが、何をチェックすればよいかわかりません。
例えば:
Input #0, flv, from 'c:\www\data.aspbooru\image\0\40c24ba424d1334ef81c88c416ce794e.flv':
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'c:\www\data.aspbooru\image\0\8c1a747b5188349d92cca17a502d2d57.mp4':
それらはFFMPeg出力です。フラッシュ用にビデオをフィルタリングするときにチェックする必要があるのはこれだけですか?
したがって、それらのいずれも当てはまらない場合。swfファイルを確認するにはどうすればよいですか?
Input #0, swf, from 'c:\www\data.aspbooru\image\0\90447bd30d30ccb1474c0433e948d438.swf':
Duration: 00:07:16.08, start: 0.000000, bitrate: 63 kb/s
Stream #0.0: Audio: mp3, 44100 Hz, 2 channels, s16, 64 kb/s
Stream #0.1: Video: flv, yuv420p, 320x240, 25 fps, 25 tbr, 25 tbn, 25 tbc
チェックはInput #0, swf,
十分ですか?それは私が欲しくない含まれているflvを抽出します。
ここで、完全にビデオではないファイルタイプとビデオであるファイルタイプをチェックする必要がありますが、h.264(またはWebm?)でmp4に変換できます。これを行う方法がまったくわかりません。
変換は管理できますが、そのヒントも非常にクールです(h.264とwebmを変換しますか?)。
ランダムファイルを入力しました。これでしょうか?
c:\web.config: Invalid data found when processing input
編集:プログラミング言語から独立しているため、プログラミング言語は指定されていません。しかし、言語固有の入力であるVB.NETに感謝します。私はすでにプロセスロジックを持っていて、出力は文字列としてそこにあると仮定できます!正規表現もかっこいいでしょう:)