2009-08-21 9 views
5

Szukam przykładu parsowania nagłówka FLV na czas trwania konkretnie w Javie. Biorąc pod uwagę adres URL pliku FLV, chcę pobrać tylko nagłówek i przeanalizować czas jego trwania. Mam specyfikację FLV, ale chcę mieć przykład. Python lub PHP też byłoby w porządku, ale preferowana jest Java.Parsing Nagłówek FLV (czas trwania) zdalnego pliku w Javie

Odpowiedz

1

Czy masz problemy z pobraniem nagłówka lub parsowaniem go? jeśli to pobierając następnie użyć tego kodu:

URL url = new URL(fileUrl); 
InputStream dis = url.openStream(); 
byte[] header = new byte[HEADER_SIZE]; 
dis.read(header); 

Można owinąć InputStream z DataInputStream jeśli chcesz przeczytać int, a nie bajtów.

Po tym wystarczy spojrzeć na metodę getInfo z PHP-FLV Info lub przeczytać specyfikację.

+0

miałem połączenie obie. Ponieważ widziałem specyfikację, największym pytaniem był najlepszy sposób pobrania części pliku, a następnie przeanalizowanie nagłówka. Eksperymentowałem z wysłaniem nagłówka zakresu HTTP, aby określić, ile bajtów chciałem, ale tylko niektóre serwery odsyłają zawartość częściowej HTTP 206, aby Twoje rozwiązanie było lepsze. Dzięki! –

+0

OK, jeśli masz pytania dotyczące parsowania, po prostu edytuj pytanie. –

+1

InputStream.read niekoniecznie jest w pełni czytany. Aby uzyskać proste rozwiązanie, zawiń 'DataInputStream' i wywołaj' readFully'. –

0

Jako the-alchemist stany w this other question:

Red5 project ma klasy o nazwie FLVReader który robi to, co chcesz. Posiada licencję LGPL.

Próbowałem go i działa dobrze. Musisz to biblioteki:

Pierwsze trwania wideo FLV jest tak proste, jak to:

FLVReader flvReader = new FLVReader(...); // Can use a File or a ByteBuffer as input 
long duration = flvReader.getDuration(); // Returns the duration in milliseconds 
Powiązane problemy