Плохая производительность видео на вспышке на xoom

После большого количества ударов головой я все еще застрял!

Я пытаюсь доставить видео H.264 через RTMP в приложение Flex, работающее на Motorola Xoom. BBC Iplayer, Youtube и многие другие видеосайты без проблем транслируют прекрасное HD-видео.

Мое решение в настоящее время кодирует видео с помощью ffmpeg и отлично воспроизводится на рабочем столе. Но на Xoom действительно апакально.

Я пытался заставить его использовать базовый уровень h.264 и заставить его использовать различные уровни. Все равно не повезло.

Кому-нибудь удалось кодировать видео для Flash на Android с помощью ffmpeg и получить хороший результат?

Заранее спасибо. Бен


person Ben Ford    schedule 17.05.2011    source источник
comment
Не могли бы показать код? Что вы использовали?   -  person J_A_X    schedule 17.05.2011
comment
В чем проблема с видео? Много буферизует? Много пикселизации? Может быть, вы можете опубликовать командную строку ffmpeg, которую вы используете? Какая сеть между сервером, на котором работает ffmpeg, и вашим Xoom?   -  person Wim Deblauwe    schedule 17.05.2011
comment
Видео выглядит великолепно во время воспроизведения, так что это не проблема пикселизации. Он будет воспроизводиться некоторое время, а затем зависнет, остановив видео и звук. Похоже, это пустой буфер. Но в буфере много видео. Кроме того, если я ищу далеко в файле. Скажем, через час или около того. Он повесит видео и воспроизведет звук для этой точки поиска.   -  person Ben Ford    schedule 20.05.2011
comment
Что касается командных строк ffmpeg. Я использовал слишком много, чтобы опубликовать их все. -i {0} -threads 0 -y -ar 22050 -acodec libfaac -vcodec libx264 -ac 2 -b {2} -g 30 -r 20 -s {3}x{4} -y {1} Это было нашим существующая командная строка для веб-видео. -i {0} -threads 0 -s {3}x{4} -vcodec libx264 -b {2} -r 24 -coder 0 -level 21 -acodec libfaac -ac 2 -ar 22050 -y {1} Это было один заставляет его использовать базовый уровень h.264 на уровне 2.1. У меня есть ряд других, указывающих -flags и различные биты. Все дают тот же результат   -  person Ben Ford    schedule 20.05.2011


Ответы (2)


Я создал гибкий потоковый проигрыватель только один раз, так что может быть лучший способ сделать это.
Я сделал это так, чтобы закодировать несколько версий видео от низкого разрешения до высокого разрешения.
Затем У меня был тест пропускной способности проигрывателя на сервере cdn.
Как только я узнал пропускную способность, я доставил нужный файл, никогда не превышая лимиты.


Это было для веб-сайта обучения покеру, и на нем было всего около 50 обучающих видео. Так что сделать 3 версии с разными разрешениями было не так уж и плохо.

person The_asMan    schedule 17.05.2011
comment
Процесс, о котором вы говорите, называется Dynamic Streaming. Или адаптивная потоковая передача. Это на месте в плеере. Однако сами видео являются проблемой. Даже если я заставлю плеер играть в версию самого низкого качества, он играет очень плохо. - person Ben Ford; 23.05.2011
comment
Пробовали ли вы воспроизводить видео, которые не были закодированы вашей командой? Снимите видео на YouTube и попробуйте это. Возможно, это ваш процесс кодирования. Или, возможно, сервер задыхается. - person The_asMan; 23.05.2011
comment
Я скопировал видео с YouTube и загрузил его в наш FMS-бокс. Он воспроизводится так же хорошо, как и на YouTube. Так что проблема точно в нашей кодировке. - person Ben Ford; 23.05.2011
comment
Так что теперь вы можете придираться к своим видео-парням за то, что они заставляют вас тратить дни напролёт. - person The_asMan; 23.05.2011

Какой битрейт/разрешение/размер изображения вы используете?

Я создал несколько тестовых потоков H.264/RTMP для своей компании, которые вы можете протестировать здесь . Потоки кодируются с помощью ffmpeg (базовый профиль) и доступны с несколькими скоростями передачи данных, примерно соответствующими форматам качества видео на YouTube.

В качестве проигрывателя используется JWPlayer, а видео передаются из Amazon CloudFront. Обратите внимание, что битрейт, указанный во флеш-плеере, нет!

person rupello    schedule 17.05.2011
comment
Я попытался открыть версии этих видео во Flash-плеере, но JWPlayer не загружается. Вы знаете RTMP-адреса этих видео? Я мог бы попробовать их напрямую? Если они работают, знаете ли вы, какие параметры ffmpeg вы использовали для их кодирования? - person Ben Ford; 23.05.2011
comment
В настоящее время я кодирую 1M 800K 600K и 350K версии видео. Разрешение 640х480. Проблема не в видео, требующем буферизации. Его воспроизведение на флэш-памяти на Android вызывает аплодисменты. - person Ben Ford; 23.05.2011
comment
странно - на моем телефоне работает нормально (Moto Droid с Gingerbread ROM). Убедитесь, что вы используете одну из версий с более низким битрейтом, например (BBB-005-FL-RTMP). RTMP-ссылка. Файлы в формате mp4/h.264 с использованием настроек ffmpeg по умолчанию. - person rupello; 23.05.2011