Wstawianie .flv na stronę.

Ot każdy kiedyś na pewno będzie potrzebował przerobić swój filmik na format .flv, a potem wstawić go na własną stronę, niekoniecznie korzystając z youtube.

Pierwsza rzecz, to konwersja filmiku do .flv. Użyjemy do tego ffmpeg i flvtools2:

ffmpeg -i d3_grunge_gameplay.m4v -s 520x312 \
-r 25 -ar 22050 -ab 48k -b 400k -f flv film.flv

cat film.flv | flvtools2 -U stdin filmik.flv

-r odpowiada za ilość klatek (fps)
-ar częstotliwość próbkowania
-ab bitrate audio
-b bitrate video
-f format pliku wyjsciowego

I w ten łatwy i przyjemny sposób mamy już gotowy filmik. Teraz przydałby się jakiś odtwarzacz na stronę. Ja polecam JW Player. Proste, open-source’owe rozwiązanie ;-) Cała instalacja tego playera ogranicza się do wrzucenia plików na serwer strony.
Potrzebny nam będzie jeszcze obrazek do poglądu zawartości filmu. Do tego celu posłużymy się znowu ffmpeg:

ffmpeg -y -i film.flv -vframes 1 -ss [czas_w_sekundach] \
-an -vcodec mjpeg -f rawvideo miniaturka.jpg

W ten sposób otrzymujemy screenshot z danej sekundy filmiku.

Mamy film, mamy odtwarzacz, mamy obrazek do poglądu – teraz wystarczy wprowadzić odpowiedni kod na stronę. A oto efekt końcowy ;-)

This text will be replaced

Jako przykład posłużył przerobiony gameplay z Diablo 3 – lepszą wersję znajdziecie tutaj.

Nowa szata graficzna, nowy trick ;-)

Jak nietrudno zauważyć wprowadziłem nową (diabloską =) szatę graficzną. Podczas modyfikacji poprzedniego stylu bardzo pomogła mi wtyczka do FF o nazwie Firebug oraz kochana konsola ;-) Ogólnie wszystko poszło sprawnie, jedyny problem jaki napotkałem to kolor pewnych znaków specjalnych w podawanym kodzie programowym. Trzeba bylo podmienić jedną, dwie linijki kodu na właściwy kolor – tyle że w 87 plikach =] Szkoda wieczoru na ręczną podmianę:

#!/bin/bash
mkdir przerobione
for i in *.php
do sed 's/#000000/#C0A972/g' $i > przerobione/$i
done

Zapisujemy plik np. jako zamiana.sh, nadajemy mu prawo do wykonania (chmod +x zamiana.sh). Następnie uruchamiamy skrypt w katalogu w którym mamy pliki (./zamiana.sh) i w ten sposób najpierw tworzymy katalog do którego będą zapisywane przerobione pliki, a następnie zamieniamy wszystkie ciagi znaków wystepujace w plikach .php z #000000 na #C0A972 i zapisujemy je w katalogu przerobione. Proste i przyjemne ;-) Oczywiście ten skrypt można napisać o wiele lepiej – ten jest wręcz archaiczny – ale swoje zadanie spełnia.

wget i rapidshare premium

Ot przedstawie prosty sposób na pobieranie plików z rapidshare za pomocą wget. Jak (nie?)wiadomo rapidshare opiera cały system uwierzytelniania użytkownika o ciasteczka (cookies) to znaczy, że za każdym razem kiedy sie logujesz do konta premium w pamięci cache przeglądarki pozostaje ciasteczko które pozwala Cię zidentyfikować jako posiadacza konta premium.

Tak więc pobieramy dla naszego wget ciasteczko z rapidshare premium:

wget \
    --save-cookies ~/.cookies/rapidshare \
    --post-data "login=LOGIN&password=HASLO" \
    -O - \
    https://ssl.rapidshare.com/cgi-bin/premiumzone.cgi \
    > /dev/null

Po kolei:
–save-cookies : zapisuje ciasteczko w podanym przez nas folderze (tj ~/.cookies/ )
–post-data: przesyłamy login i hasło metodą POST aby otrzymać nasze ciasteczko
-O – : pobiera dane do standartowego wyjścia. Potrzebujemy jedynie ciasteczka z tej operacji więc całe wyjście przekierowujemy do naszej systemowej czarnej dziury (/dev/null). Jeśli tego nie zrobimy to po prostu otrzymamy jeszcze jeden plik ze zbedną stroną www.

Gdy już mamy ciasteczko, wystarczy teraz w ustawieniach naszego konta na rapidshare zaznaczyć opcję:

Direct downloads, requested files are saved without redirection via RapidShare

I już możemy spokojnie pobierać pliki z rapida za pomocą komendy:

wget -c --load-cookies ~/.cookies/rapidshare

-c : ta opcja jest użyta w razie gdy plik został nie ściągnięty do końca itd. po prostu wznawia pobieranie, a nie zaczyna od nowa w takiej sytuacji.
–load-cookies : ładuje ciasteczko które wcześniej sobie tak ładnie pobraliśmy ;-)

Przetłumaczyłem ten poradnik z tej strony gdzie można również znaleść przepis na pobieranie plików za pomocą curl ;-)