Как-то зачастил я кататься куда попало, решил время зря не терять, посмотреть что-нибудь в поездке (а то что-то выходит новое в киноиндустрии, да дома времени нет даже пролистать).
Девайс у меня HTC Desire Z (Qualcomm 800MHz Display 800x480). Родное видео с камеры выдаёт по ffmpeg -iInput #0, mov,mp4,m4a,3gp,3g2,mj2, from 'VIDEO0008.3gp':
Metadata:
major_brand : 3gp4
minor_version : 0
compatible_brands: isom3gp4
Duration: 00:00:05.59, start: 0.000000, bitrate: 4249 kb/s
Stream #0.0(eng): Audio: aac, 44100 Hz, mono, s16, 63 kb/s
Stream #0.1(eng): Video: h264 (Baseline), yuv420p, 480x800, 3089 kb/s, PAR 65536:65536 DAR 3:5, 23.34 fps, 90k tbr, 90k tbn, 180k tbc
Ну и соответственно из рассчёта что может быть ЭТО смартфоном будет декодироваться как-то аппаратно (не так тормозить, не так садить батарею), хотелось бы оптимально подогнать конвертируемое видео к такому формату.
Пока получился такой вот скрипт
#!/bin/sh
size=800x480
video_out=video$size
mkdir $video_out
for i in *.flv *.mp4
do
ffmpeg -i "$i" -vf "scale=800:480,unsharp" -r 24 -vb 1200k -vcodec mpeg4 -acodec libfaac -ab 96k -ar 44100 $video_out/"$i.mp4"
done
Из косяков:
1) Видео более маленького разрешения растягивается. Есть какой-то параметр у ffmpeg чтобы не увеличивать разрешение?
2) Не совсем разобрался, как оно будет масштабировать левые пропорции. Будет опять же растягивать лица или обрезать края?
Ну и может кто подскажет ещё пару каких фокусов, как оптимизировать это под смартфоны/телефоны?