【问题标题】:How to retrieve codec information using libvlc?如何使用 libvlc 检索编解码器信息?
【发布时间】:2016-07-21 08:16:59
【问题描述】:

使用 libvlc 播放远程媒体时,我需要获取编解码器信息。由于 VLC 播放器可以做到这一点(见下面的截图),所以 libvlc 也可以做到。

另外,我发现 libvlc_media_tracks_get 可以返回一个相关的结构如下:

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 存储了此类信息,但它不是人类可读的,我不知道特定值的含义。可能他们之间有一张地图,我还没找到。

【问题讨论】:

    标签: c codec libvlc


    【解决方案1】:

    第三行已经告诉你i_codec应该被解释为fourcc

    fourcc 是 四个 ASCII c字符codes的序列,它们实际上是人类可读的,只是不是整数。这些代码的列表是可用的here

    libvlc 在vlc_fourcc.h 中声明了vlc_fourcc_GetDescription,可以用来获取描述字符串。

    【讨论】:

    • 感谢您的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-17
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 2013-06-02
    相关资源
    最近更新 更多