Saya menggunakan RaspberryPi 1gen B +, untuk push stream ke web melalui rtmp. Tapi saya menemukan penggunaan CPU saya sampai 90% +. Ini adalah bagaimana saya menggunakannya:
ffmpeg -re -f concat -safe 0 -i playlist.txt -vcodec copy -acodec aac -f flv "rtmp://example.com:1060"
jadi saya ingin menggunakan GPU untuk decode / encode. Setelah riset google, saya menemukan "h264_omx", dan saya telah mengimplementasikan h264_omx:
pi@pi:/usr/src/ffmpeg $ sudo ./configure --enable-omx --enable-omx-rpi
sudo make
sudo make install
jadi saya menggunakan:
ffmpeg -re -f concat -safe 0 -i playlist.txt -vcodec h264_omx -acodec aac -f flv "rtmp://example.com:1060"
output di sini:
Tetapi penggunaan CPU masih berjalan hingga 90% +, yang lebih buruk, video menjadi tidak jelas dan hanya memiliki 5fps.
jadi, apa yang salah denganku? Apakah mungkin untuk 1gen B + ke codec perangkat keras?
-an
alih-alih -acodec copy
sebagai langkah debug. Ini harus menghapus audio ... jika berfungsi, itu karena langkah transcode audio Anda terlalu lambat.
vcodec copy
seharusnya sudah memberi Anda penggunaan CPU serendah mungkin untuk streaming video (penggunaan 0% karena hanya menyalinnya). Masalah Anda BUKAN codec video.
-vcodec copy
akan selalu lebih cepat. Ini berarti Anda ingin melakukan nol pemrosesan pada aliran video mp4. Anda tidak perlu transcode video dari mp4 ke mp4 untuk aliran flv. Saya menduga masalahnya adalah aliran audio acc. Coba ganti-acodec acc
dengan-acodec copy
.