2012-01-04 230 views
8

一些類似的問題在stackoverflow上,但我一直無法找出這個確切的問題。FFmpeg fourcc Avi編解碼器支持列表?

我想獲得FFMpeg可解碼的avi編解碼器的fourcc的列表。

我知道如何獲得所有格式ffmpeg -formats和編解碼器ffmpeg -codecs,但都沒有列表給我一個可訪問的列表fourccs。我找不到的文件也沒有。

我需要這個名單,讓我的應用程序可以訪問avi文件的fourcc,並確定是否使用ffmpegVfW(或DirectX),試圖解碼文件。

是否有一些ffmpeg命令可以給我這個列表?

+0

我問這個問題上FFmpeg的特定論壇,被告知,有沒有這樣的列表中的特定格式。這聽起來很奇怪... – Sugrue 2012-01-10 16:31:35

回答

6

我不知道它是否全面,但源代碼似乎包含FourCC列表。

http://ffmpeg.org/doxygen/trunk/isom_8c-source.html

有很多行這樣

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

您應該能夠下載最新的源代碼,並編寫一個腳本來接他們了。

+0

太棒了。謝謝。 – Sugrue 2012-03-22 18:37:35

7

爲了延長由Darren上面給出的答案(因爲評論設施不允許這麼多的文字),這裏是從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 
1

可以通過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_tagsavformat_get_riff_audio_tagsav_codec_get_id在 「了libavformat/avformat.h」 所有定義。

你也可以映射爲使用表AVOutputFormat.codec_tagAVInputFormat.codec_tag