Od kilku godzin próbuję sprostać konwersji wideo za pomocą FFMPEG do formatu FLV. Oczywiście banalne przykłady funkcjonują, natomiast jedyną przeszkodą jest utrata jakości. Wykonując komendę:
Kod
ffmpeg -y -i /test.mov -s 640x480 -deinterlace -ab 32 -r 15 -ar 22050 -ac 1 -vcodec flv -b 1024K -r 24 -f flv /test.flv
Jakość jest "taka sobie", a i waga większa. Żeby zmniejszyć wagę, można ustalić niższy próg -b, na przykład na 640K (domyślnie jest 200K). Można również zdefiniować quality poprzez -qmin i -qmax (i podać -qdiff), natomiast jakość będzie dość fatalna. Dlaczego?
Zauważyłem, że problem tkwi w doborze kodeku. -vcodec flv nie jest jakimś wyrafinowanym. W sieci znalazłem:
Cytat
If you need high quality .flv video - don't use old H.263 flv codec (flash 7) - use VP6 (flash 8) or H.264 (flash 9) instead. They are almost same quality (vp6 less blocky, h264 more details)
Also use two-pass encoding - one-pass loose quality or takes much more space for same quality compared to two-pass.
Also use two-pass encoding - one-pass loose quality or takes much more space for same quality compared to two-pass.
Kod
ffmpeg -y -i /test.m4v -s 640x480 -vcodec vp6f -f flv -b 200K -r 25 /test.flv
ffmpeg -y -i /test.m4v -s 640x480 -vcodec h264 -f flv -b 200K -r 25 /test.flv
ffmpeg -y -i /test.m4v -s 640x480 -vcodec h264 -f flv -b 200K -r 25 /test.flv
Niestety, gdy używam kodeka vp6 lub h264 (lub nawet już starszego h263p), ffmpeg mówi mi, że nie podałem informacji o outpucie (bitrate, framerate, etc), chociaż wpisane są. Ponad to wyświetla się warning, że kodek nie jest kompatybilny z outputem -f flv.
Ktoś robił już jakąś sensowniejszą konwersję do flv?