2012-01-04 38 views
8

Một vài câu hỏi tương tự đang ở trên stackoverflow, nhưng tôi đã không thể tìm ra vấn đề chính xác này.FFmpeg danh sách hỗ trợ codec bốncc của Avi?

Tôi muốn có danh sách các fourcc giây cho các codec avi mà FFMpeg có thể giải mã.

Tôi biết cách nhận tất cả các định dạng ffmpeg -formats và codec ffmpeg -codecs nhưng không danh sách nào cung cấp cho tôi danh sách có thể truy cập là fourccs. Tôi cũng không thể tìm thấy tài liệu này.

Tôi cần danh sách này, do đó ứng dụng của tôi có thể truy cập vào fourcc của một tập tin avi và xác định xem có sử dụng ffmpeg hoặc VfW (hoặc DirectX) để thử giải mã các tập tin.

Có một số lệnh ffmpeg có thể cung cấp cho tôi danh sách này không?

+0

Tôi đã hỏi câu hỏi này trên một diễn đàn cụ thể FFMpeg và được cho biết rằng không có danh sách đó. Điều này nghe có vẻ kỳ lạ với tôi ... – Sugrue

Trả lời

6

Tôi không biết nếu nó toàn diện nhưng mã nguồn có vẻ chứa danh sách các FourCC.

Nhìn vào http://ffmpeg.org/doxygen/trunk/isom_8c-source.html

Có rất nhiều dòng như thế này

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

Bạn sẽ có thể tải về mã nguồn mới nhất và viết một kịch bản để chọn chúng ra.

+0

Tuyệt vời. Cảm ơn. – Sugrue

7

Để mở rộng câu trả lời đưa ra ở trên bởi Darren (và vì cơ sở bình luận không cho phép văn bản này nhiều) đây là danh sách đầy đủ các codec phân tích cú pháp từ tập tin isom_8c nguồn trên 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

Có thể lập bản đồ thông qua api avformat, mà không cần đào trong mã nguồn.

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); 

Các chức năng avformat_get_riff_video_tags, avformat_get_riff_audio_tagsav_codec_get_id đều được định nghĩa trong "libavformat/avformat.h".

bạn cũng có thể nhận được các bản đồ cho một định dạng cụ thể bằng cách sử dụng bảng AVOutputFormat.codec_tag hoặc AVInputFormat.codec_tag

Các vấn đề liên quan