私はこれを自分で考え出しました。
ビデオファイルのメタデータにビットレートが含まれていません。再生に影響を与えないメディアに関する追加情報のみが含まれています。したがって、Phonon :: MediaObject :: metaData()がビデオをロードせずに作業しても、それはあなたを助けません。
ビットレートを取得するために、ffmpegライブラリの一部であるlibformatを使用してしまいました。ここにコードがあります。
これをコピーして貼り付けると効果があります。ここ
ダウンロードFFMPEG:http://dranger.com/ffmpeg/tutorial01.html この最初のチュートリアルでは、どのようにリンクすることを教えてくれます:あなたはそれが実際に含まれているものを見るために、そのマップからすべてのキー/値をダンプhttp://dranger.com/ffmpeg/tutorial01.html
#include <QString>
#include <QMultiMap>
#include <stdio.h>
#include <libavformat/avformat.h>
#include <libavutil/dict.h>
void processMedia(const char* mediaFile)
{
AVFormatContext *pFormatCtx = NULL;
AVDictionaryEntry *tag = NULL;
// Register all formats and codecs
av_register_all();
// Open video file
if(avformat_open_input(&pFormatCtx, mediaFile, NULL, NULL)!=0)
return;
// Retrieve stream information
if(av_find_stream_info(pFormatCtx)<0)
return;
//Get Bitrate
float bitRate = pFormatCtx->bit_rate;
//Get Meta
QMultiMap<QString, QString> metaData;
while ((tag = av_dict_get(pFormatCtx->metadata, "", tag,
AV_DICT_IGNORE_SUFFIX)))
{
QString keyString(tag->key);
QString valueString(tag->value);
metaData.insert(keyString, valueString);
printf("%s=%s\n", tag->key, tag->value);
}
// Close the video file
av_close_input_file(pFormatCtx);
}
てみましたか? – Mat
地図のサイズは0です...なぜか分かりません。 – Himiko