Я хочу реализовать потоковое видео в моем проекте. Итак, есть ли какой-нибудь учебник, который работает? Видео сохраняются на стороне сервера. Итак, чтобы получить видео с помощью URL-адреса и воспроизвести его на Android. Я попробовал несколько примеров, но у меня возникла ошибка: "Извините, это видео невозможно воспроизвести". Я пытаюсь использовать MP4.
Пример видеопотока для Android
Ответ 1
У меня была такая же проблема, но, наконец, я нашел способ.
Вот прохождение:
1- Установите VLC на свой компьютер (SERVER) и перейдите в Media- > Streaming (Ctrl + S)
2- Выберите файл для потока или если вы хотите передать свою веб-камеру или... нажмите на вкладку "Захват устройства" и выполните настройку и, наконец, нажмите кнопку "Стрим".
3 Здесь вы должны настроить конфигурацию потокового сервера, просто перейдите на вкладку "Вариант" и вставьте следующую команду:
:sout=#transcode{vcodec=mp4v,vb=400,fps=10,width=176,height=144,acodec=mp4a,ab=32,channels=1,samplerate=22050}:rtp{sdp=rtsp://YOURCOMPUTER_SERVER_IP_ADDR:5544/}
ПРИМЕЧАНИЕ. Замените YOURCOMPUTER_SERVER_IP_ADDR на свой IP-адрес компьютера или на любом сервере, на котором запущен VLC...
ПРИМЕЧАНИЕ. Вы можете видеть, что видеокодек - это MP4V, который поддерживается андроидом.
4 перейдите в eclipse и создайте новый проект для медиа-плейбака. создайте объект VideoView и в функции OnCreate() напишите следующий код:
mVideoView = (VideoView) findViewById(R.id.surface_view);
mVideoView.setVideoPath("rtsp://YOURCOMPUTER_SERVER_IP_ADDR:5544/");
mVideoView.setMediaController(new MediaController(this));
5 запустите apk на устройстве (не симулятор, я его не проверял) и дождитесь запуска воспроизведения. пожалуйста, подумайте, что процесс буферизации займет около 10 секунд...
Вопрос: Кто-нибудь знает, как уменьшить время буферизации и воспроизвести видео почти вживую?
Ответ 2
Я столкнулся с той же проблемой и нашел решение, чтобы заставить код работать.
Код, указанный в android-Sdk/samples/android-?/ApiDemos
, отлично работает. Скопируйте каждую папку в проект Android, а затем в MediaPlayerDemo_Video.java введите путь к видео, которое вы хотите передать в переменной пути. Он остается пустым в коде.
Для меня работал следующий видеопоток: http://www.pocketjourney.com/downloads/pj/video/famous.3gp
Я знаю, что протокол RTSP должен использоваться для потоковой передачи, но класс mediaplayer поддерживает HTTP для потоковой передачи, как указано в коде.
Я искал формат видео и обнаружил, что видео, преобразованное в mp4 или 3gp с использованием Quicktime Pro, отлично работает для потоковой передачи.
Я тестировал последний apk на Android 2.1. Приложение dosent работает на эмуляторах хорошо. Попробуйте на устройствах.
Я надеюсь, что это поможет.
Ответ 3
Ваша проблема, скорее всего, связана с видеофайлом, а не с кодом. Ваше видео, скорее всего, не "безопасно для потоковой передачи". Смотрите где разместить видео для потокового андроида для более подробной информации.