The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"ffmpeg, кодирование видео для смартфона"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на рабочей станции (Видео / Linux)
Изначальное сообщение [ Отслеживать ]

"ffmpeg, кодирование видео для смартфона"  +/
Сообщение от ябалдею on 19-Май-13, 16:27 
Как-то зачастил я кататься куда попало, решил время зря не терять, посмотреть что-нибудь в поездке (а то что-то выходит новое в киноиндустрии, да дома времени нет даже пролистать).
Девайс у меня HTC Desire Z (Qualcomm 800MHz Display 800x480). Родное видео с камеры выдаёт по ffmpeg -i

Input #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) Не совсем разобрался, как оно будет масштабировать левые пропорции. Будет опять же растягивать лица или обрезать края?

Ну и может кто подскажет ещё пару каких фокусов, как оптимизировать это под смартфоны/телефоны?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "ffmpeg, кодирование видео для смартфона"  +/
Сообщение от foxy_ant on 23-Май-13, 22:01 
> 1) Видео более маленького разрешения растягивается. Есть какой-то параметр у ffmpeg чтобы
> не увеличивать разрешение?

Так и должно быть при применении видеофильтра scale, если нужен другой размер то надо поменять параметры фильтра, вместо 800:480 указать нужные, если ненадо изменять размер то вместо видеофильтра scale надо использовать фильтр copy.

Можно задать размер с помощью параметра -s.

> 2) Не совсем разобрался, как оно будет масштабировать левые пропорции. Будет опять
> же растягивать лица или обрезать края?

Будет растягивать-сжимать. Для обрезания кадра есть параметры -croptop, -cropbottom и т.д., этого эффекта можно добиться с помощью фильтра crop.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "ffmpeg, кодирование видео для смартфона"  +/
Сообщение от чаёвник on 24-Май-13, 12:32 
> вместо видеофильтра scale надо использовать фильтр copy.

И тогда перекодирования видеоданных вообще не будет, в итоге смартфон не справляется с раскодированием.
Нужно
1) Для видео бОльшего размера уменьшить разрешение до 800:480
2) Для видео меньшего размера оставить разрешение без изменений
3) Перекодировать из всяких жестоко тормозных flv в mpeg4
Я понимаю что каждый файл можно ручками тискать, подгоняя разрешение по необходимости, но хотелось бы всю очередь скриптом прогнать за ночь и утром уже забрать нормальные файлы на смартфон и ехать, а не плясать всю ночь над каждым файлом с подгонкой разрешения

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "ffmpeg, кодирование видео для смартфона"  +/
Сообщение от foxy_ant on 25-Май-13, 22:21 
>> вместо видеофильтра scale надо использовать фильтр copy.
> И тогда перекодирования видеоданных вообще не будет, в итоге смартфон не справляется
> с раскодированием.

вообще фильтры scale и copy перекодированием не занимаются, они задуманы для работы с размером изображения.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "ffmpeg, кодирование видео для смартфона"  +/
Сообщение от чаёвник on 26-Май-13, 11:14 
> вообще фильтры scale и copy перекодированием не занимаются, они задуманы для работы
> с размером изображения.

Поэтому у меня этот пункт выполняется через указание -vcodec mpeg4. Вопрос не в этом. Вопрос в том, как изменить размер в меньшую сторону, если он больше заданного, но оставить неизменным, если он меньше заданного.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "ffmpeg, кодирование видео для смартфона"  +/
Сообщение от Прохожий (??) on 11-Май-15, 18:25 
>[оверквотинг удален]
>     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) Не совсем разобрался, как оно будет масштабировать левые пропорции. Будет опять
> же растягивать лица или обрезать края?
> Ну и может кто подскажет ещё пару каких фокусов, как оптимизировать это
> под смартфоны/телефоны?

Для аппаратного декодирования важен вот этот параметр: Video: h264 (Baseline)
Для своей NOKIA C7 кодирую с
-vcodec libx264 -profile:v baseline

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема


  Закладки на сайте
  Проследить за страницей
Created 1996-2017 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
Hosting by Ihor