2012-01-11 21 views
2

私は与えられたファイルを開き、 "これはMP4ファイルです"または "これはwebm"ファイル、または "これは有効なビデオではないようです"Python3でビデオフォーマットを特定する方法はありますか?

https://code.google.com/p/pyffmpeg/でFFmpegラッパーを見ましたが、その内部にget_codec関数の種類がありませんでした。

思考?

+0

[PythonでファイルのMIMEタイプを見つける方法?](http://stackoverflow.com/questions/43580/how- pythonのファイルタイプを見つけるために)には、これを行うためのいくつかのテクニックが含まれていますので、答えがこれにも当てはまります(たとえそれがタイトルから明白でなかったとしても)。 –

+1

AVI/MKVのMIMEタイプを取得すると、内部データストリームではなくAVI/MKVがAVI/MKVとして返され、他の多くのフォーマットは圧縮ストリームのコンテナです。 – Geoffrey

+1

@Geoffrey:まあ、「フォーマット」という言葉はあいまいです。 webmはコンテナであり、mp4も同様です。しかし、彼は "get_codec"と書いています。これは別のものです。 –

答えて

5

Hachoirをご覧ください。それは 'マルチメディアファイルからメタデータを抽出する'。ここで

はAVIファイルからメタデータ抽出の彼らの例です:

$ hachoir-metadata pacte_des_gnous.avi 
Common: 
- Duration: 4 min 25 sec 
- Comment: Has audio/video index (248.9 KB) 
- MIME type: video/x-msvideo 
- Endian: Little endian 
Video stream: 
- Image width: 600 
- Image height: 480 
- Bits/pixel: 24 
- Compression: DivX v4 (fourcc:"divx") 
- Frame rate: 30.0 
Audio stream: 
- Channel: stereo 
- Sample rate: 22.1 KHz 
- Compression: MPEG Layer 3 
+0

もう一つのオプションはpython-magic(libmagic wrapper)です。これは、人に知られているほとんどすべてのファイルタイプをサポートしています。さらに網羅的なメタデータについては、MediaInfoのラッパーであるpython-mediainfoを調べることができます。このMediaInfoは、ほぼすべてのビデオフォーマット(およびその他のもの)の網羅的なメタデータを提供します。 – Dakota

4

私のpythonはちょっと錆びますが、モジュールをすばやく見てみると、これらが上になります。

Track.Codec 

AVCodecはコーデック名が含まれています。コーデック自体(AVCodec)を取得するには

Track.CodecCtx.codec_id 

:コーデックIDを取得するには

関連する問題