Hai Untuk mulai dengan, saya mengembangkan program untuk menentukan nomor mobil pada prosesor daya rendah yang murah seperti Intel ATOM Z8350. Kami mendapat hasil yang cukup baik dalam menentukan angka Rusia dalam gambar statis (hingga 97%) dengan kinerja yang baik tanpa menggunakan jaringan saraf. Masalahnya tetap kecil - bekerja dengan kamera IP Gambar 1.
Gambar 1 Komputer Intel ATOM Z83II dan Kamera IP ATISFFmpeg adalah pustaka untuk membuat aplikasi video atau bahkan utilitas serba guna yang mengambil semua kerja keras pemrosesan video, melakukan semua pengodean, pengodean, multipleksing dan demultiplexing untuk Anda.
Tugas : Kamera Full HD IP dalam standar h.264 mentransmisikan aliran RTSP. Ukuran bingkai yang didekompresi adalah 1920x1080 piksel, frekuensinya adalah 25 bingkai per detik. Penting untuk menerima frame yang diterjemahkan dalam RAM dan menyimpan setiap 25 frame ke disk.
Dalam contoh ini, kita akan mendekode frame secara terprogram. Tujuannya adalah untuk mempelajari cara menggunakan FFmpeg dan selanjutnya membandingkan hasil yang diperoleh dengan menggunakan decoding perangkat keras. Anda akan melihat FFmpeg - mudah!
Menginstal FFmpeg : banyak orang menyarankan untuk membangun FFmpeg untuk perangkat keras mereka. Saya sarankan menggunakan
zeranoe build , yang sangat menyederhanakan tugas. Sangat penting bahwa majelis
nol menyertakan dukungan untuk DXVA2, yang akan berguna bagi kita nanti untuk decoding perangkat keras.
Kami pergi ke situs
https://ffmpeg.zeranoe.com/builds/ dan mengunduh 2 arsip bersama dan dev sebelum memilih 32 atau 64 bit. Arsip dev menyimpan perpustakaan (.lib) dan menyertakan. Arsip bersama berisi .dlls yang diperlukan yang perlu ditulis ulang dalam folder dengan program masa depan Anda.
Jadi, buat folder ffmpeg pada drive C: \. Kami akan menulis ulang file dari arsip dev ke dalamnya.
Menghubungkan FFmpeg ke Visual Studio 2017: membuat proyek baru. Pergi ke properti proyek (Proyek - properti). Selanjutnya, C / C ++ dan pilih "Direktori tambahan untuk file yang disertakan." Tetapkan nilainya: "C: \ ffmpeg \ dev \ include;". Setelah itu, buka Direktori Perpustakaan Linker-Tambahan dan atur nilainya menjadi "C: \ ffmpeg \ dev \ lib;". Itu saja. FFmpeg terhubung ke proyek kami.
Proyek pertama dengan FFmpeg: decoding dan perekaman video perangkat lunak dari masing-masing 25 frame ke disk. Prinsip bekerja dengan file video di FFmpeg disajikan dalam diagram blok Gambar. 2
2 Blok diagram bekerja dengan file video.Berikut adalah kode proyek C ++ Karena kamera IP saya memiliki IP 192.168.1.168, maka panggilan program:
decode.exe rtsp://192.168.1.168
Juga, contoh ini dapat men-decode file video, cukup untuk menunjukkan lokasinya.
Jadi, dalam contoh ini, kami belajar mendekode file video secara terprogram dan menyimpan frame yang diterima ke disk. Frame disimpan dalam format .ppm. Anda dapat menggunakan IrfanView 64 atau GIMP di Windows untuk membuka file ini.
Kesimpulan: decoding perangkat lunak dari aliran RTSP Full HD H.264 memakan waktu hingga dua core Intel ATOM Z8350, selain itu, paket loss terjadi secara berkala, karena bagian mana dari frame yang diterjemahkan secara salah. Metode ini lebih berlaku untuk mendekode file video yang direkam, karena operasi waktu nyata tidak diperlukan.
Pada artikel selanjutnya saya akan memberi tahu Anda cara mendekode aliran RTSP di perangkat keras.Arsipkan dengan proyek
Program kerjaTautan ke materi di FFmpeg:
1.
Tutorial bekerja dengan FFmpeg, sedikit ketinggalan jaman.2.
Berbagai informasi bermanfaat tentang FFmpeg.3.
Informasi tentang penggunaan berbagai perpustakaan yang disediakan oleh FFmpeg.