FFmpeg fourcc список поддержки кодеков Avi?

Несколько похожих вопросов есть по stackoverflow, но я не смог понять эту точную проблему.

Я хочу получить список fourcc для кодеков avi, которые FFMpeg может декодировать.

Я знаю, как получить все форматы ffmpeg -formats и кодеки ffmpeg -codecs, но ни один из списков не дает мне доступного списка fourccs. Нет и документации, которую я могу найти.

Мне нужен этот список, чтобы мое приложение могло получить доступ к fourcc файла avi и определить, использовать ли ffmpeg или VfW (или DirectX), чтобы попытаться декодировать файл.

Есть ли какая-нибудь ffmpeg команда, которая может дать мне этот список?


person Sugrue    schedule 04.01.2012    source источник
comment
Я задал этот вопрос на форуме, посвященном FFMpeg, и мне сказали, что такого списка нет. Мне это кажется странным ...   -  person Sugrue    schedule 10.01.2012


Ответы (3)


Я не знаю, исчерпывающий ли он, но исходный код, кажется, содержит список FourCC.

Посмотрите на http://ffmpeg.org/doxygen/trunk/isom_8c-source.html

Таких строк много

{ CODEC_ID_AAC,             MKTAG('m', 'p', '4', 'a') }

У вас должна быть возможность загрузить последний исходный код и написать сценарий, чтобы их выбрать.

person Darren Greaves    schedule 22.03.2012

Чтобы расширить ответ, данный Дарреном выше (и поскольку средство комментирования не допускает такого большого количества текста), вот полный список кодеков, проанализированных из исходного файла isom_8c на ffmpeg.org:

raw     yuv2    2vuy    yuvs    L555    L565    B565    24BG
BGRA    RGBA    ABGR    b16g    b48r    bxbg    bxrg    bxyv
NO16    DVOO    R420    R411    R10k    R10g    r210    AVUI
AVrp    SUDS    v210    bxy2    v308    v408    v410    Y41P
yuv4    jpeg    mjpa    AVDJ    AVRn    dmb1    mjpb    SVQ1
svq1    svqi    SVQ3    mp4v    DIVX    XVID    3IV2    h263
s263    dvcp    dvc     dvpp    dv5p    dv5n    AVdv    AVd1
dvhq    dvhp    dvh1    dvh2    dvh4    dvh5    dvh6    dvh3
VP31    rpza    cvid    8BPS    smc     rle     WRLE    qdrw
WRAW    avc1    ai5p    ai5q    ai52    ai53    ai55    ai56
ai1p    ai1q    ai12    ai13    ai15    ai16    m1v1    mpeg
m1v     m2v1    hdv1    hdv2    hdv3    hdv4    hdv5    hdv6
hdv7    hdv8    hdv9    hdva    mx5n    mx5p    mx4n    mx4p
mx3n    mx3p    xd54    xd55    xd59    xd5a    xd5b    xd5c
xd5d    xd5e    xd5f    xdv1    xdv2    xdv3    xdv4    xdv5
xdv6    xdv7    xdv8    xdv9    xdva    xdvb    xdvc    xdvd
xdve    xdvf    xdhd    xdh2    AVmp    mjp2    tga     tiff
gif     png     MNG     vc-1    avs2    drac    AVdn    H263
3IVD    AV1x    AVup    sgi     dpx     exr     apch    apcn
person Sugrue    schedule 28.08.2012

Возможно отображение через avformat api, не копаясь в исходном коде.

 uint32_t tag = MKTAG('H', '2', '6', '4');
 const struct AVCodecTag *table[] = { avformat_get_riff_video_tags(), 0 };
 enum AVCodecID vcodec = av_codec_get_id(table, tag );

Функции avformat_get_riff_video_tags, avformat_get_riff_audio_tags и av_codec_get_id определены в "libavformat / avformat.h".

вы также можете получить отображение для определенного формата, используя таблицу AVOutputFormat.codec_tag или AVInputFormat.codec_tag

person UmNyobe    schedule 05.12.2013