Передавання потокового відео з Raspberry Pi в Інтернет через Ustream
Оценка пользователей: / 8
ПлохоОтлично 
There are no translations available.

UstreamUstream є одним з найпопулярніших сайтів потокового відео в Інтернеті. Він використовується НАСА для потокової передачі відео з Міжнародної космічної станції на весь світ.
Такі сайти, як Ustream, YouTubeLive, Bambuser і justin.tv відомі як сервіси розповсюдження контенту.
Радимо скористатися подібними сервісами, тому що ви зможете потенційно мати тисячі людей, які одночасно дивляться ваше відео. Якби спробували передавати відео багатьом глядачам зі свого власного інтернет-з'єднання, то маршрутизатор, ймовірно, розплавився б. Просто було б недостатньо смуги пропускання для завантаження.
З постачальником послуг розповсюдження контенту ви посилаєте відео контент до нього, а він потім виконує підключення до всіх глядачів. Таким чином, ви розвантажите необхідну пропускну полосу свого власного інтернет-з'єднання до них. І вам не доведеться турбуватися про те, скільки людей одночасно спостерігають ваше відео або скільки трафіку використовується.
Єдиним недоліком буде затримка відео. Наприклад, якщо ви ткнете пальцем в поле об’єктива, то побачити його в Інтернеті тільки через 20 - 30 секунд. Незважаючи на це, ви зробите абсолютно життєздатне рішення для обміну своїм відео з усім світом.
Компілюйте FFmpeg
По-перше, необхідно встановити деяке програмне забезпечення під назвою FFmpeg на Raspberry Pi, який буде постійно пердавати потік відео даних з плати камери в Інтернет. Інструкції наведені нижче.
ПРИМІТКА: Цей крок займе близько двох годин, щоб скомпілювати програму з вихідного коду. Пакет Raspbian FFmpeg, який можна встановити за допомогою apt-get, не має необхідної підтримки відео декодера h264. Ви можете просто запустити процес встановлення і протягом цього часу зробити ще щось. Встановлення вам потрібно зробити тільки один раз.
Та частина, яка займає біля двох годин, це команда make в кінці списку нижче. Частина ./configure також займає певний час, тож просто будьте терплячі. Введіть наступні команди, щоб завантажити, скомпілювати і встановити FFmpeg:
cd /usr/src
sudo mkdir ffmpeg
sudo chown pi:users ffmpeg
git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
./configure
make && sudo make install
Тепер можете зайнятися чимось іншим, поки знову не побачите командний рядок.
Створіть обліковий запис Ustream
Якщо ви ще не зробили цього, перейдіть на ustream.tv з ПК або ноутбука і натисніть Sign Up (Зареєструватися).
Введіть необхідні дані, щоб створити власний обліковий запис. Під час реєстрації вам буде запропоновано створити канал; намагайтеся придумати цікаву назву для нього, щоб люди, які знаходять його, легко запам'ятали.
Не соромтеся, налаштовуючи його; також дайте своєму каналу аватар.
Обліковий запис буде безкоштовним і дозволятиме все, що потрібно. Проте, після 30 днів на сторінці, де буде ваше відео в реальному часі, будуть показуватися деякі оголошення. Це є частиною бізнес-моделі Ustream. Ви можете купити обліковий запис PRO і отримати доступ до багато більших можливостей, наприклад, відсутність оголошень, хоча це не є необхідним для даного проекту.
Нам потрібно скопіювати два налаштування з вашого облікового запису Ustream, щоб використати на Raspberry Pi: RTMP address (адреса RTMP) і stream key (ключ потоку). Ці два параметри потрібні FFmpeg для того, щоб дані передавалися на правильний канал Ustream.
Щоб знайти ці два налаштування виконайте наступні дії:
  • Увійдіть
  • Виберіть Dashboard в меню вверху праворуч
  • Виберіть в лівій частині з меню CHANNELS
  • Виберіть свій канал
  • Виберіть Remote
Ви повинні побачити екран нижче. Однак, поля RTMP URL і Stream Key міститимуть текст. Скопіюйте і вставте ці значення в текстовий файл для подальшого використання.
Ustream account
Перейдіть в прямий ефір!
Намір полягає в тому, щоб передавати відео потік контенту в Інтернет на основі 24/7. Враховуючи, що іноді інтернет-сервери можуть вимикатися, то це гарна ідея - переконатися, що Raspberry Pi намагатиметься відправити відеопотік, якщо є проблема.
Для цього ми можемо створити маленький сценарій з циклом. Всередині цього циклу буде команда, яка запускатиме потік. Якщо щось трапиться і команда потоку піде не так і зупиниться, то сценарій буде циклічно повторюватися і безкінцево пробувати запустити команду.
Давайте для цього створимо на Raspberry Pi сценарій. Введіть таку команду:
nano ~/ustream
Тепер скопіюйте і вставте наступний код, але замініть <rtmpurl> і <streamkey> відповідними збереженими значеннями з власного телеканалу Ustream:
#!/bin/bash
RTMP_URL=<rtmpurl>
STREAM_KEY=<streamkey>
while :
do
    raspivid -n -vf -hf -t 0 -w 960 -h 540 -fps 25 -b 500000 -o - | ffmpeg -i - -vcodec copy -an -metadata title="Streaming from raspberry pi camera" -f flv $RTMP_URL/$STREAM_KEY
    sleep 2
done
Натисніть Ctrl + O, щоб зберегти і Ctrl + X для виходу.
Тепер майже все на місці. Щоб зробити оболонку скрипта виконуваною, введіть таку команду:
chmod +x ~/ustream
Тепер щоразу, коли захочете запустити відео, просто використайте наступну команду:
~/ustream
Ви можете переглянути живий ефір на ПК або ноутбуці, ввівши URL каналу Ustream в браузері. Адреса може бути доступною за допомогою значка в правій частині назви каналу під CHANNELS в приладовій панелі Ustream. Поглянте на зелений квадрат на екрані скріншоту вище.
Якщо у вас є відео-канал на екрані, виконайте перевірку, щоб побачити, яка затримка. Введіть палець в поле зору камери і подивіться, скільки треба часу, щоб палець з'явився на сайті. URL з адресного рядка браузера тепер можна відправити друзям електронною поштою, через Facebook або Twitter, і всі вони будуть в змозі дивитися, що відбувається у полі вашої камери. Так можна провести презентацію, або навчальний курс.
Натисніть двічі Ctrl + C, коли захочете зупинити потік.
Дистанційне керування
Останнє, що ви повинні розглянути, це можливість віддаленого доступу до Raspberry Pi з іншого комп'ютера без необхідності мати клавіатуру, мишу і монітор, підключеними до нього. Це досить незручно, якщо ви десь на вулиці, наприклад.
Ви повинні ознайомитися з SSH (Secure Shell Server). Це техніка, яка дозволяє мати командний рядок Raspberry Pi всередині вікна на іншому ПК або Mac. Поки інший ПК має мережевий доступ до Raspberry Pi, ви можете мати повне дистанційне керування ним.
Наведені тут інструкції показують, як це зробити з Windows, OS X або Linux.
Після того, як відчуваєте себе комфортно с SSH, вам буде потрібний спосіб запуску ~/ustream через SSH, а потім відключення від Pi, залишивши його працюючим. Якщо запустите ~/ustream у вікні SSH, а потім закриєте це вікно, то не зможете повернутися до нього, щоб подивитися, якщо виникне проблема. В ідеалі, ви дійсно не хочете тримати вікно SSH відкритим весь час на іншому ПК або Mac, тому розглянемо простий спосіб вирішити цю проблему.
Screen
Screen - це невелика утиліта, яка дозволяє вам мати кілька термінальних сеансів лише з одним під’єднанням SSH до Pi. Це неймовірно зручно і як тільки скористаєтеся цим, то будете використовувати його весь час.
По-перше, вам необхідно встановити утиліту, оскільки вона не входить встановленою за замовчуванням. Вам треба буде зробити це тільки один раз:
sudo apt-get install screen
Тоді, щоб почати нову сесію, введіть наступну команду:
screen bash
Це надасть порожній сеанс, показуючий командний рядок. Введіть наведену нижче команду - термінальний еквівалент диспетчера завдань в Windows:
top
Ми будемо використовувати її як нашу програму управління, яку залишимо запущеною. Тепер натисніть Ctrl + A + D, щоб відключитися від Screen. Ви повинні повернутися в попередній командний рядок. Тепер повністю закрийте вікно SSH, зачекайте кілька секунд і знову підключіться.
Щоб повернутися і відновити сеанс Screen введіть наступну команду:
screen -r
Тепер повинні подивитися знову на top. Натисніть Ctrl + C, щоб закрити top, а потім можете ввести exit, щоб закрити сесію Screen.
Автор рекомендує повторювати це з ~/ustream замість top.
Це дозволить налаштувати Pi тільки з підключеними живленням і Ethernet. Тоді зможете увійти через SSH, запустити потокове відео, а потім відключитися, залишивши потокове відео працюючим в фоновому режимі. Якщо є проблема або потокове відео вимкнеться з якихось причин, то зможете увійти через SSH і відновити сеанс Screen, щоб перевірити.
(За матеріалами: raspberrypi.org)
 
>
КнигаНовости Практика поискаПартнерыО нас
Підтримка та дизайн: Могильний С.С. Шаблон: Joomla Templates by BuyHTTP Joomla Hosting