Kirim data ke aliran video Amazon Kinesis - Amazon Kinesis Video Streams

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Kirim data ke aliran video Amazon Kinesis

Bagian ini menjelaskan cara mengirim data media dari kamera ke aliran video Kinesis yang Anda buat di bagian sebelumnya. Bagian ini menggunakan Gunakan pustaka produser C ++ sebagai Contoh: Plugin SDK GStreamer produsen Kinesis Video Streams - kvssink plugin.

Untuk mengirim media dari berbagai perangkat pada berbagai sistem operasi, tutorial ini menggunakan GStreamerperpustakaan produser Kinesis Video Streams C ++ dan, kerangka media open-source yang menstandarisasi akses ke kamera dan sumber media lainnya.

Membangun SDK dan sampel

Anda dapat membangun SDK dan sampel di komputer Anda atau di AWS Cloud9. Ikuti prosedur yang sesuai di bawah ini.

Build on your computer

Gunakan instruksi dalam file readme untuk membangun pustaka produser dan aplikasi sampel.

Hal ini mencakup:

  • Menginstal dependensi

  • Mengkloning repositori

  • Menggunakan CMakeuntuk menghasilkan makefile

  • Membangun file biner menggunakan make

Build in AWS Cloud9

Ikuti prosedur ini untuk mengunggah ke Kinesis Video AWS Cloud9 Streams di. Anda tidak perlu mengunduh apa pun ke komputer Anda.

  1. Di AWS Management Console, terbuka AWS Cloud9.

    Pilih Buat lingkungan.

  2. Pada layar Create environment, lengkapi yang berikut ini:

    • Nama - Ketik nama untuk lingkungan baru Anda.

    • Platform - Pilih Ubuntu Server 22.04 LTS.

    Anda dapat meninggalkan bidang lain dengan pilihan default.

  3. Ketika lingkungan telah dibuat, pilih Buka di kolom Cloud9 IDE.

    Di area tengah bawah layar, Anda lihat. Admin:~/environment $ Ini adalah terminal AWS Cloud9 (Amazon EC2).

    catatan

    Jika Anda secara tidak sengaja menutup terminal, pilih Jendela, Terminal Baru.

    Jalankan perintah berikut di terminal untuk mengubah volume menjadi 20 GiB.

    1. Unduh skrip .

      wget https://awsj-iot-handson.s3-ap-northeast-1.amazonaws.com/kvs-workshop/resize_volume.sh
    2. Berikan izin eksekusi skrip.

      chmod +x resize_volume.sh
    3. Jalankan penulisan.

      ./resize_volume.sh
  4. Ambil informasi terbaru tentang semua perangkat lunak yang dapat Anda instal atau perbarui melalui Advanced Packaging Tool (APT).

    Perintah ini tidak memperbarui perangkat lunak itu sendiri, tetapi memastikan sistem Anda tahu apa versi terbaru yang tersedia.

    sudo apt-get update
  5. Instal dependensi SDK produsen C++.

    sudo apt-get install -y cmake m4 git build-essential pkg-config libssl-dev libcurl4-openssl-dev \ liblog4cplus-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \ gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-plugins-good \ gstreamer1.0-plugins-ugly gstreamer1.0-tools
  6. Gunakan git untuk mengkloning SDK produsen C ++.

    git clone https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp.git
  7. Siapkan direktori build.

    cd amazon-kinesis-video-streams-producer-sdk-cpp mkdir build cd build
  8. Gunakan CMake untuk menghasilkan makefiles.

    cmake .. -DBUILD_GSTREAMER_PLUGIN=TRUE -DBUILD_DEPENDENCIES=OFF

    Akhir dari output yang diharapkan terlihat seperti berikut:

    -- Build files have been written to: /home/ubuntu/environment/amazon-kinesis-video-streams-producer-sdk-cpp/build
  9. Gunakan make untuk mengkompilasi SDK dan contoh aplikasi, serta membangun executable akhir.

    make

    Akhir dari output yang diharapkan terlihat seperti berikut:

    [100%] Linking CXX executable kvs_gstreamer_file_uploader_sample [100%] Built target kvs_gstreamer_file_uploader_sample
  10. Konfirmasikan file sampel telah dibuat. Daftar file di direktori saat ini:

    ls

    Konfirmasikan bahwa file-file berikut ada:

    • kvs_gstreamer_sample

    • libgstkvssink.so

  11. (Opsional) Anda dapat menambahkan pengaturan variabel lingkungan GST_PLUGIN_PATH ke skrip start-up shell Anda. Ini memastikan GST_PLUGIN_PATH diatur dengan benar selama sesi terminal baru. Di AWS Cloud9, skrip start-up shell adalah:. ~/.bashrc

    Jalankan perintah berikut untuk menambahkan perintah ke akhir skrip start-up shell.

    echo "export GST_PLUGIN_PATH=~/environment/amazon-kinesis-video-streams-producer-sdk-cpp/build" >> ~/.bashrc

    Ketik berikut ini untuk menjalankan skrip start-up shell:

    source ~/.bashrc

    Konfirmasikan GST_PLUGIN_PATH disetel.

    echo $GST_PLUGIN_PATH

    Jika Anda mengatur output dengan benar, Anda akan melihat output berikut. Jika output kosong, variabel lingkungan tidak diatur dengan benar.

    /home/ubuntu/environment/amazon-kinesis-video-streams-producer-sdk-cpp/build

Jalankan sampel untuk mengunggah media ke Kinesis Video Streams

Aplikasi sampel tidak mendukung kredensyal IMDS. Di terminal Anda, ekspor AWS kredensyal untuk pengguna atau peran IAM Anda dan wilayah tempat aliran Anda berada.

export AWS_ACCESS_KEY_ID=YourAccessKey export AWS_SECRET_ACCESS_KEY=YourSecretKey export AWS_DEFAULT_REGION=YourAWSRegion

Jika Anda menggunakan AWS kredensyal sementara, ekspor juga token sesi Anda:

export AWS_SESSION_TOKEN=YourSessionToken
.mp4 files

Unduh contoh video.mp4 untuk diunggah ke Kinesis Video Streams.

wget https://awsj-iot-handson.s3-ap-northeast-1.amazonaws.com/kvs-workshop/sample.mp4

Spesifikasi video:

  • Resolusi - 1280 x 720 piksel

  • Frame rate - 30 frame per detik

  • Durasi - 14,0 detik

  • Pengkodean video - H.264, di trek 1

  • Keyframes - Setiap 3 detik, menghasilkan durasi fragmen (juga dikenal sebagai ukuran sekelompok gambar (GoP)) 3 detik, dengan fragmen akhir berdurasi 2 detik.

Jalankan perintah berikut dengan nama aliran yang Anda buat sebelumnya. Jika Anda belum membuat streaming, lihatBuat aliran video Amazon Kinesis.

./kvs_gstreamer_sample YourStreamName ./sample.mp4
Sample video from GStreamer

Gunakan perintah berikut untuk menghasilkan video menggunakan GStreamer.

Beri tahu GStreamer di mana menemukan kvssink GStreamer plugin. Di direktori build Anda, tentukan path ke folder yang berisi libgstkvssink.so file.

Dari direktori build Anda, jalankan perintah berikut:

export GST_PLUGIN_PATH=`pwd`

GStreamer Pipeline ini menghasilkan streaming video uji langsung dengan pola pengujian standar yang berjalan pada 10 frame per detik dengan resolusi 640x480 piksel. Hamparan ditambahkan menampilkan waktu dan tanggal sistem saat ini. Video kemudian dikodekan ke dalam format H.264 dan keyframe dihasilkan paling banyak setiap 10 frame, menghasilkan durasi fragmen (juga dikenal sebagai ukuran sekelompok gambar (GoP)) 1 detik. kvssinkmengambil aliran video yang dikodekan H.264, mengemasnya ke dalam format wadah Matroska (MKV), dan mengunggahnya ke aliran video Kinesis Anda.

Jalankan perintah berikut:

gst-launch-1.0 -v videotestsrc is-live=true \ ! video/x-raw,framerate=10/1,width=640,height=480 \ ! clockoverlay time-format="%a %B %d, %Y %I:%M:%S %p" \ ! x264enc bframes=0 key-int-max=10 \ ! h264parse \ ! kvssink stream-name="YourStreamName"

Untuk menghentikan GStreamer pipa, pilih jendela terminal dan tekan CTRL+C.

catatan

Untuk informasi lebih lanjut tentang menggunakan GStreamer plugin untuk melakukan streaming video dari aliran RTSP dari kamera, atau dari kamera USB, lihatContoh: Plugin SDK GStreamer produsen Kinesis Video Streams - kvssink.

Tinjau objek pengakuan

Selama upload, Kinesis Video Streams akan mengirim objek pengakuan kembali ke klien yang melakukan upload. Anda akan melihat ini dicetak dalam output perintah. Contohnya terlihat seperti berikut:

{"EventType":"PERSISTED","FragmentTimecode":1711124585823,"FragmentNumber":"12345678901234567890123456789012345678901234567"}

Jika pengakuan ituPERSISTED, itu EventType berarti Kinesis Video Streams telah lama menyimpan dan mengenkripsi potongan media ini untuk pengambilan, analisis, dan penyimpanan jangka panjang.

Untuk informasi lebih lanjut tentang ucapan terima kasih, lihat. PutMedia