Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2006.01.01;
Скачать: [xml.tar.bz2];

Вниз

-= .AVI видео и информация о нем =-   Найти похожие ветки 

 
_DemiK   (2005-01-16 03:59) [0]

В видео файлах есть что-то типо тегов где имеется инфа о артисте и т.д. Как их от туда всех извлечь, как, к примеру, теги из МР3?
Спасибо!


 
Antonn ©   (2005-01-16 05:12) [1]


> инфа о артисте

разве такие есть? есть только "технические" характеристики.


 
_DemiK   (2005-01-16 15:04) [2]

Удалено модератором
Примечание: Предупреждение тебе.


 
Antonn ©   (2005-01-16 15:14) [3]

_DemiK   (16.01.05 15:04) [2]
За базаром... Сначала научись нормально вопрос ставить. Вот как найдешь информацию об артисте в *.avi тогда и ори.


 
cydvb   (2005-04-14 11:50) [4]

инфа об артисте есть, во всяком случае когда в адоп премьере делаеш аувишку можеш запихивать свою инфу, и винда её с удовольствием показывает в свойствах.


 
Black&White   (2005-07-11 12:47) [5]

Вот здесь есть то о чем ты спрашиваешь!
http://abcavi.kibi.ru/index_rus.htm
Называется  поддержка расширенного набора INFO тэгов (Extended INFO tags)


есть только "технические" характеристики.


Встречное предложение
помогите, пожалуйста, извлечь техническую информацию из заголовка  AVI файл


 
Киби   (2005-07-19 17:15) [6]

http://abcavi.kibi.ru/docs/avi_bitrate.htm - там как раз про вычисление характеристик AVI файла написано.

К вопросу о всяко-разных способах изменения информации в AVI тэгах всё-таки лучше зайти непосредственно на страницу для разработчиков:  http://abcavi.kibi.ru/developer.htm

Там и примеры есть с исходными кодами, и DLL для работы с AVI файлами, и технические описания.


 
Simon ©   (2005-07-23 12:27) [7]

А может кто знает как проделать тоже самое но с VOB или IFO файлами?
Очень бы хотелось почитать...
Заранее благодарен.


 
NailMan ©   (2005-07-25 11:26) [8]

извлечь тех-информацию можно распотрошив заголовок AVI, а сделать это грамотно можно с помощью DirectX SDK, там все подробнейше расписано впро все стандартные секции заголовков RIFF - медиафайлов(AVI, WAV etc)

---
P.L.U.R. and WBR, NailMan aka 2:5020/3337.13


 
NailMan ©   (2005-07-25 11:32) [9]

[8] NailMan ©   (25.07.05 11:26)

нашел в закромах родины своего плеера. Вырезано из контекста, комментарии излишни. Часто встречаются лишние операции move(PD^,FCC,4); - это для отладки - видно где я стою в файле если заголовок нестандартный(помогает написать распознавание левой секции и ее обработать в дальнейшем).

Function ReadAVIHeader(Const FName:String;Var Avi:TAviInfo):Cardinal;
var f:Integer;
    p,PD:pointer;
    NulDD,i,leng:Cardinal;
audstreams:dword;
    FCC,FCC2 : Array[0..3] of char;
    MH : ^TAVIMainHeader;
    SH : ^TAVIStreamHeader;
   VFH : ^TVidsFormat;
   WVH : ^TWaveFormatEx;

begin
Result:=1; //По умолчанию - AVIVideo
Zeromemory(@AVi,sizeof(TAviInfo));

if FileAutoDetection then avi.CRC:=getfilecrc(fname);

F:=Fileopen(fname,fmopenread or fmsharedenynone);

 fileread(f,fcc,4);   //RIFF
 fileread(f,nuldd,4);
 fileread(f,fcc2,4);  //AVI_

 if (fcc=fcc_riff) and (fcc2<>FCC_AVI) then
  begin
    result:=0;
   Fileclose(F);
   exit;
  end;

 if (fcc<>fcc_riff) then
   begin
    If FCC=FCC_mpeg then result:=2
     else
     result:=0;
    Fileclose(F);
    exit;
   end;

 Fileread(f,fcc,4);  //LIST
 fileread(f,nuldd,4);
  getmem(p,nuldd+1024);
   fileread(f,p^,nuldd);
 fileclose(f);

 PD:=P; //stay on "hdrl"
 inc(DWORD(PD),4); //stay on "avih"
  MH:=PD;
  AVi.AVIHeader.dwMicroSecPerFrame:=MH^.dwMicroSecPerFrame;
  avi.AVIHeader.dwMaxBytesPerSec:=mh^.dwMaxBytesPerSec;
  avi.AVIHeader.dwFlags:=mh^.dwFlags;
  avi.AVIHeader.dwTotalFrames:=mh^.dwTotalFrames;
  avi.AVIHeader.dwStreams:=mh^.dwStreams;
 inc(DWORD(PD),sizeof(TAVIMainHeader)); //Stay on LIST
 audstreams:=0;
    move(PD^,FCC,4);
 For i:=0 to avi.AVIHeader.dwStreams-1 do
  Begin
   inc(DWORD(PD),4); //stay on "strl" length
    move(PD^,FCC,4);
   inc(DWORD(PD),4); //Stay on "strl"
    move(PD^,FCC,4);
   inc(DWORD(PD),4); //stay on "strh"
    move(PD^,FCC,4);
   SH:=PD;
   if SH^.fccType=ConvertFCCToDWORD(FCC_vids) then
    begin
     avi.vids.st:=sh^;
     inc(DWORD(PD),sh^.cb+8); //stay on "strf"
      move(PD^,FCC,4);
     inc(DWORD(PD),4); //stay on length "strf"
      move(PD^,leng,4);
     inc(DWORD(PD),4); //stay on "strf" data
     VFH:=PD;
     avi.vids.FMT.BMfmt:=VFH^.BMfmt;
     if leng>56 then
       avi.vids.FMT.DVFmt:=VFH^.DVFmt;
     inc(DWORD(PD),leng);//stay on LIST
     move(PD^,FCC,4);
    end;

    if SH^.fccType=ConvertFCCToDWORD("auds") then begin
     avi.auds[audstreams].st:=SH^;
      inc(DWORD(PD),sh^.cb+8); //stay on "strf"
      move(PD^,FCC,4);
     inc(DWORD(PD),4); //stay on length "strf"
      move(PD^,leng,4);
     inc(DWORD(PD),4); //stay on "strf" data
     WVH:=PD;
     avi.auds[audstreams].WAVFmt:=WVH^;
     inc(DWORD(PD),leng);
     inc(audstreams);
    end;
  Move(PD^,FCC,4);//Stay on JUNK or "strn"
  If (FCC=FCC_JUNK) or (FCC=FCC_strn) or (FCC=FCC_strd) or (FCC=FCC_indx) then
   begin
     inc(DWORD(PD),4);
      move(PD^,nuldd,4);
      If nuldd mod 2<>0 then inc(nuldd);
      inc(DWORD(PD),4+NULDD);
      move(PD^,FCC,4);
   end;
  End;
 avi.audstreams:=audstreams;
freemem(p);
end;


---
P.L.U.R. and WBR, NailMan aka 2:5020/3337.13


 
NailMan ©   (2005-07-25 11:34) [10]

описания типов и констант:

type
        FCC_Type = array[0..3] of char;
Const

        FCC_RIFF : FCC_Type = "RIFF";
        FCC_hdrl : FCC_Type = "hdrl";
        FCC_AVI  : FCC_Type = "AVI ";
        FCC_avih : FCC_Type = "avih";
        FCC_strl : FCC_Type = "strl";
        FCC_strh : FCC_Type = "strh";
        FCC_strf : FCC_Type = "strf";
        FCC_strd : FCC_Type = "strd";
        FCC_strn : FCC_Type = "strn";
        FCC_MOVI : FCC_Type = "movi";
        FCC_LIST : FCC_Type = "LIST";
        FCC_JUNK : FCC_Type = "JUNK";
        FCC_indx : FCC_Type = "indx";
        FCC_vids : FCC_Type = "vids";
        FCC_MPEG : FCC_Type = chr($0)+ chr($0) + chr($01)+ chr($BA);

TYPE
           TFOURCC = array[0..3] of char;    

           TVidsFormat = record
                 BMfmt : TBITMAPINFOHEADER;
                 DVFmt : TDVINFO;
           end;

          TVideoStream = record
                    st : TAVIStreamHeader;
                   FMT : TVidsFormat;
          end;

          TAudioStream = record
                    st : TAVIStreamHeader;
                WAVFmt : TWaveFormatEx;
          end;

                    TAviInfo = record
                   AVIHeader : TAVIMainHeader;
                  audstreams : DWORD;
                        vids : TvideoStream;
                        auds : Array[0..4] of TAudioStream;
                         CRC : Int64;
                    end;

Function ConvertFCCToDWORD(fcc:FCC_Type):dword;
begin
move(fcc,result,4);
end;



---
P.L.U.R. and WBR, NailMan aka 2:5020/3337.13



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2006.01.01;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.018 c
3-1131680302
Rat
2005-11-11 06:38
2006.01.01
Почему Delphi и Access конфликтуют.


14-1133602424
Kerk
2005-12-03 12:33
2006.01.01
Soviet dream / Russians are stupid (most of them)


2-1134379571
barakuda
2005-12-12 12:26
2006.01.01
плавающая панель


14-1133727715
Глаз
2005-12-04 23:21
2006.01.01
Какой монитор лучший выбор на сегодня?


3-1131511953
IGray
2005-11-09 07:52
2006.01.01
Пересоздать повреждённые индексы (Paradox+TTable)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский