Как получить информацию о кодеке с помощью libvlc?

Мне нужно получить информацию о кодеке при использовании libvlc для воспроизведения удаленных носителей. Поскольку проигрыватель VLC может этого добиться (см. Снимок экрана ниже), libvlc тоже может это сделать.

снимок экрана VLC

Кроме того, я обнаружил, что 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 хранит такую ​​информацию, но она не читается человеком, и я не знаю значения конкретного значения. Наверное, между ними есть карта, а я ее еще не нашел.


person olist    schedule 21.07.2016    source источник


Ответы (1)


В третьей строке уже сказано, что i_codec следует интерпретировать как fourcc.

fourcc - это последовательность из четырех символов ASCII c c кодов, которые на самом деле читаются человеком, но не как целое число. Список этих кодов доступен здесь.

libvlc объявляет vlc_fourcc_GetDescription в vlc_fourcc.h, который можно использовать для получения строки описания.

person a3f    schedule 21.07.2016
comment
Спасибо за Ваш ответ. - person olist; 21.07.2016