Воспроизвести видеофайл .ts на Android?

Я новичок в потоковом видео, поэтому, пожалуйста, потерпите меня. :)

Я пытаюсь перенести поток m3u8 с iPhone на Android. Просматривая ленту m3u8, я нашел несколько файлов .ts. Насколько я могу судить, файлы .ts сами по себе являются оболочками, содержащими видеопоток (элементарный поток).

Можно ли воспроизвести файл .ts на Android? (В документах в качестве поддерживаемых форматов указаны только 3gp и mp4.)

Есть ли способ извлечь элементарный поток и просто обработать видеопоток? Если это в 3gp или mp4, я должен быть в порядке.

Будет ли Stagefright обрабатывать .ts? Доступен ли Stagefright? Я читал, что есть/были некоторые проблемы с ним.

(Еще одно предостережение: я не получаю особой помощи от своих серверных парней. Они настаивают на решении Flash player, включая проприетарный плеер. Они не предоставят мне канал 3gp или mp4, но я надеюсь, что можно найти в файле .ts.)

Я открыт для других предложений. Спасибо за ваше терпение с этим новичком. :)


person user359519    schedule 01.03.2011    source источник
comment
Если ребята из сервера доберутся туда, у вас не будет видео с iPhone? Флэш-плеера для iPhone нет.   -  person Stu Thompson    schedule 02.03.2011
comment
У нас уже есть отдельная лента для iPhone.   -  person user359519    schedule 05.04.2011
comment
Привет, пользователь 359519 :) Есть ли у вас какое-нибудь решение для воспроизведения файла .ts? Я хочу сделать то же самое, пожалуйста, скажите мне, если вы нашли какой-либо способ.   -  person Arun Badole    schedule 19.12.2012


Ответы (3)


Для этого существует стандарт, который называется HTTP Live Streaming. Android 3.0 в некоторой степени поддерживает этот протокол, что означает, что вы можете передать URL-адрес списка воспроизведения m3u8 в MediaPlayer, и проигрыватель сможет передавать его через HTTP. Stagefright поставляется с Android 3.0.

Вы можете просмотреть его исходный код здесь.

Кроме того, вас может заинтересовать эта ветка: он суммирует поддержку HTTP Live Streaming.

person Samuh    schedule 01.03.2011
comment
Согласно этой ссылке, похоже, что протокол HTTP Live Streaming от Apple поддерживается только в версиях 2.3+. Однако по состоянию на 11.02.11 только 0,8% пользователей используют версию 2.3. 3.0 даже на графике нет. (См. developer.android.com/resources/dashboard/) есть решение для 2.2? - person user359519; 01.03.2011
comment
Я считаю, что вам придется самостоятельно обрабатывать весь синтаксический анализ плейлиста m3u8, а затем воспроизводить файлы .ts. Возможно, вы можете упаковать код stagefright в свое приложение. Или же есть стороннее решение: NexPLayer от Nextream, SDK которого общедоступен; вы можете попробовать использовать это. - person Samuh; 02.03.2011
comment
Удалось ли вам успешно воспроизвести файлы .ts? Где я могу найти NexPlayer SDK? - person PGU; 17.12.2012
comment
Мы связались с владельцем проекта, но ничего не вышло. Последняя версия MediaPlayer на новых платформах поддерживает прямую трансляцию. Разве это не соответствует вашему варианту использования? - person Samuh; 10.01.2013

Android stagefright в Gingerbread и предыдущих версиях не поддерживает воспроизведение .ts (транспортный поток) или элементарного потока. Как вы правильно заметили, он поддерживает только форматы файлов MP4/3GP/MP3.

person Oak Bytes    schedule 15.07.2011
comment
Android 3.0+ поддерживает .ts, хотя и с некоторыми проблемами. - person Pointer Null; 19.06.2013
comment
Верно, но этот ответ был написан во время выпуска имбирного хлеба. Соответственно обновил ответ. - person Oak Bytes; 25.06.2013

Вы можете воспроизвести .ts видеофайл на Android, используя проект на основе NDK. Dolphine Player — лучший проигрыватель с открытым исходным кодом для Android, а также поддерживает различные форматы видео.

Вы получили ссылку .ts из файла m3u. Теперь вы можете получить двоичные данные из файла .ts и сохранить эти двоичные данные в файле, а затем воспроизвести этот файл с помощью видеоплеера.

person Ekta Patel    schedule 01.08.2013