如何使用 libvlc 检索编解码器信息?
How to retrieve codec information using libvlc?
我在使用libvlc 播放远程媒体时需要获取编解码器信息。由于VLC播放器可以做到这一点(见下面的截图),libvlc也可以做到。
此外,我发现 libvlc_media_tracks_get 可以 return 一个相关的结构如下:
typedef struct libvlc_media_track_t
{
/* Codec fourcc */
uint32_t i_codec;
uint32_t i_original_fourcc;
int i_id;
libvlc_track_type_t i_type;
/* Codec specific */
int i_profile;
int i_level;
union {
libvlc_audio_track_t *audio;
libvlc_video_track_t *video;
libvlc_subtitle_track_t *subtitle;
};
unsigned int i_bitrate;
char *psz_language;
char *psz_description;
} libvlc_media_track_t;
也许成员i_codec
存储了这样的信息,但它不是人类可读的,我不知道具体值的含义。大概有他们之间的地图,我还没找到。
我在使用libvlc 播放远程媒体时需要获取编解码器信息。由于VLC播放器可以做到这一点(见下面的截图),libvlc也可以做到。
此外,我发现 libvlc_media_tracks_get 可以 return 一个相关的结构如下:
typedef struct libvlc_media_track_t
{
/* Codec fourcc */
uint32_t i_codec;
uint32_t i_original_fourcc;
int i_id;
libvlc_track_type_t i_type;
/* Codec specific */
int i_profile;
int i_level;
union {
libvlc_audio_track_t *audio;
libvlc_video_track_t *video;
libvlc_subtitle_track_t *subtitle;
};
unsigned int i_bitrate;
char *psz_language;
char *psz_description;
} libvlc_media_track_t;
也许成员i_codec
存储了这样的信息,但它不是人类可读的,我不知道具体值的含义。大概有他们之间的地图,我还没找到。