Вместо того, чтобы заново изобретать колесо, вы можете использовать FFMPEG, объявленный как «Полное кроссплатформенное решение для записи, преобразования и потоковой передачи аудио и видео».
ffmpeg -re -i input -f rtsp -muxdelay 0.1 rtsp://server/live.sdp
, вы можете выбрать опцию, скажем, нетзадержка "-preset ultrafast -tune zerolatency" или захват с камеры Logitec C930 "-i / dev / video0" или видеофайл "-i your_file_location"
Один из примеров, который я могу привести, - это как транслировать мою веб-камеру со звукомна онлайн-сервер
lxterminal -e ffmpeg -f v4l2 -framerate 30 -video_size 800x448 -i /dev/video0 -i /home/pi/Desktop/sound/ic_ch.png -codec:v h264 -r 30 -s 800x448 -bf 0 -g 30 -bufsize 8000k -maxrate 8000k -filter_complex "[0:v][1:v] overlay=(W-w)/2:(H-h)/2:enable='gte(t,1)'" -preset ultrafast -tune zerolatency -f h264 udp://192.168.5.10:23003 & sleep 0.1
Не пугайтесь, вам не нужны все опции.Просто возьмите стандарт ввода, вывода и кодирования, который вам подходит.