Как декодировать и воспроизводить видео .h264 с сервера amazon s3 в Android?

У меня есть видео .h264 на сервере, как декодировать это видео и воспроизводить его на Android?

Я использую FFMPEG для воспроизведения этих видео, но в образце FFMPEG он берет видео с SD-карты и успешно воспроизводит видео. Я использую представление поверхности для воспроизведения этих видео. Мой вопрос: как воспроизвести видео .h264 с сервера amazon s3 в Android?

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


person Ashok    schedule 10.04.2015    source источник
comment
скинь ссылку на видео...   -  person Amitsharma    schedule 28.04.2015
comment
вы также можете поставить% 20 ​​вместо пробела, это URL-адрес холодного декодирования, тогда вы сможете воспроизвести его видео .....   -  person Amitsharma    schedule 28.04.2015
comment
Нет необходимости декодировать видео, просто декодируйте URL-адрес, только если вы будете декодировать URL-адрес видео, вы увидите неправильное декодирование Android. Пример декодирования http//:www.google.com: http%3S%2F%3S//www.google. .com и т. д., как это   -  person Amitsharma    schedule 28.04.2015
comment
@amitsharma Спасибо за ответ, да, это не декодирование, вопрос в том, как получить доступ (поток?) к файлам с сервера S3? пример URL: s3.amazonaws.com/201501bk/filename.h264   -  person Ashok    schedule 29.04.2015
comment
это не полный URL-адрес или здесь нет видео Посмотрите здесь, я публикую ответ   -  person Amitsharma    schedule 29.04.2015
comment
что вы хотите именно здесь   -  person Amitsharma    schedule 29.04.2015


Ответы (3)


Сделайте ваши видео (файлы) в корзине s3 общедоступными,
и используйте общедоступный URL-адрес, он будет доступен везде.

ИЗМЕНИТЬ

Вы можете использовать VideoView. Вот пример:

VideoView videoView = (VideoView) findViewById(R.id.videoView);
//Use a media controller so that you can scroll the video contents
//and also to pause, start the video.
MediaController mediaController = new MediaController(this); 
mediaController.setAnchorView(videoView);
videoView.setMediaController(mediaController);
videoView.setVideoURI(Uri.parse(videoUrl));
videoView.start();

Вы должны предоставить URI (имея переменную String url, где она содержит URL-адрес видео) с этим кодом Uri.parse(url). А также убедитесь, что URL-адрес подходит. Также предоставьте соответствующие разрешения для вашего приложения (поскольку оно использует Интернет, вам нужно будет добавить <uses-permission android:name="android.permission.INTERNET" > в Manifest.xml вашего приложения. Наконец, вы должны определить свою активность MediaPlayerActivity в Manifest.xml вашего приложения.

Вы также можете использовать MediaPlayer. На сайте разработчиков Android есть хорошее руководство здесь.

H.264

Согласно этим, Android поддерживает воспроизведение базового профиля h.264. Таким образом, ваше видео h.264 не является базовым профилем или, возможно, оно содержит неподдерживаемый звук.

Обратите внимание, что существует множество разновидностей h.64, поэтому вам следует проверить свой видеофайл: http://www.niallkennedy.com/blog/2010/07/h264-video.html

person Salmaan    schedule 10.04.2015
comment
Спасибо за ответ, вы все мои URL-адреса общедоступны, тогда как воспроизвести URL-адрес видео .h264 с сервера в Android с помощью ffmpeg? - person Ashok; 10.04.2015
comment
@Ashok Вам не нужно использовать ffmpeg для воспроизведения видео .h264, так как это просто кодек видео mp4. - person Salmaan; 10.04.2015
comment
@salman спасибо, просмотр видео не поддерживает поля .h264, я пробую ваш код, он показывает ошибку «Не удается воспроизвести видео». - person Ashok; 10.04.2015
comment
@Ashok Пожалуйста, проверьте свой кодек еще раз, так как он отлично работает для меня. - person Salmaan; 10.04.2015
comment
А @Ashok, на какой версии Android вы работаете? это возможно только для андроида 3.0+ - person Salmaan; 10.04.2015
comment
@salman это необработанный файл формата .h264, и можете ли вы предоставить какой-либо образец для этого? - person Ashok; 10.04.2015

Вам нужно убедиться, что ваше видео H.264 находится в кодеке, который может принять ваше устройство Android, в противном случае вам нужно его перекодировать.

person emma24xia    schedule 28.04.2015
comment
H.264 — это кодек, а ffmpeg может декодировать фильмы в H.264, так что это не относится к перекодированию. Вопрос был о том, как получить доступ (поток?) к файлам с сервера S3. - person user2622016; 28.04.2015
comment
@user2622016 user2622016 да, вы правы, вопрос в том, как получить доступ (поток?) к файлам с сервера S3? есть ли какой-нибудь пример для этого, пожалуйста, заранее спасибо. - person Ashok; 29.04.2015
comment
Я не знаю. Я действительно ничего не знаю о S3. Я предполагаю, что некоторые API могут быть доступны для Android, например, для PHP docs.aws.amazon.com/aws-sdk-php/guide/latest/ - person user2622016; 30.04.2015

У меня есть полное решение моей проблемы с помощью этого кода. Может быть, это поможет вам.

 layout.xml

    <VideoView
    android:id="@+id/videoview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
     />

.сорт

         String FileUrl="decoded url";
         MediaController mediacontroller = new MediaController(this);
        mediacontroller.setAnchorView(videoView);
        Uri video = Uri.parse(FileUrl);
        videoView.setMediaController(mediacontroller);
        videoView.setVideoURI(video);

манифест.xml

разрешения

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
person Amitsharma    schedule 29.04.2015
comment
спасибо за ответ, этот код не работает для меня, он показывает ошибку, например, не может воспроизвести это видео, и дайте мне свой почтовый идентификатор, я отправляю вам свой образец - person Ashok; 01.05.2015
comment
Спасибо за тест, вы проводите тестирование в моем URL-адресе или любом другом? - person Ashok; 07.05.2015
comment
это твое дело, нет проблем, сегодня у меня есть время, чтобы сделать эти вещи сегодня - person Amitsharma; 07.05.2015
comment
Приведенный выше код работает в видео mp4, но видео .h264 не воспроизводится в приведенном выше коде. и спасибо за вашу поддержку - person Ashok; 07.05.2015
comment
спросите об этом у @Ashok, он сделал с сервером amazon, этот формат кода выполняется, когда ваше видео на вашем сервере, я пробовал с моим сервером, а не с сервером amazon... - person Amitsharma; 28.03.2016