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:
- 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.
-
Di AWS Management Console, terbuka AWS Cloud9.
Pilih Buat lingkungan.
-
Pada layar Create environment, lengkapi yang berikut ini:
Anda dapat meninggalkan bidang lain dengan pilihan default.
-
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).
Jika Anda secara tidak sengaja menutup terminal, pilih Jendela, Terminal Baru.
Jalankan perintah berikut di terminal untuk mengubah volume menjadi 20 GiB.
-
Unduh skrip .
wget https://awsj-iot-handson.s3-ap-northeast-1.amazonaws.com/kvs-workshop/resize_volume.sh
-
Berikan izin eksekusi skrip.
chmod +x resize_volume.sh
-
Jalankan penulisan.
./resize_volume.sh
-
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
-
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
-
Gunakan git untuk mengkloning SDK produsen C ++.
git clone https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp.git
-
Siapkan direktori build.
cd amazon-kinesis-video-streams-producer-sdk-cpp
mkdir build
cd build
-
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
-
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
-
Konfirmasikan file sampel telah dibuat. Daftar file di direktori saat ini:
ls
Konfirmasikan bahwa file-file berikut ada:
-
kvs_gstreamer_sample
-
libgstkvssink.so
-
(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. kvssink
mengambil 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.
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