Я пытаюсь одновременно кодировать и транслировать видео на iMX 6 Quad. В настоящее время я использую этот конвейер:
gst-launch-1.0 -v videotestsrc num-buffers=300 ! video/x-raw,format=YUY2,width=1280,height=720,framerate=60/1! videoconvert ! video/x-raw,format=I420 ! \
tee name=t \
t. ! queue ! imxvpuenc_h264 ! h264parse ! mp4mux ! filesink location="test-3.mp4" \
t. ! queue ! imxipuvideosink
Обратите внимание, что videotestsr c предназначен для имитации камеры с выходным форматом YUY2.
Я не могу go сверх 720p при 60 кадрах в секунду [включая любую частоту кадров для 1080p]. Это узкое место производительности из-за оборудования или конвейера, который я настроил? Потому что я получаю такие предупреждающие сообщения:
WARNING: from element /GstPipeline:pipeline0/GstImxIpuVideoSink:imxipuvideosink0: A lot of buffers are being dropped.
Additional debug info:
gstbasesink.c(2902): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstImxIpuVideoSink:imxipuvideosink0:
There may be a timestamping problem, or this computer is too slow.
Кроме того, если у кого-то есть плата iMX 8, не могли бы вы попытаться запустить 1080p при 60 кадрах в секунду и посмотреть, есть ли у этого конвейера какие-либо проблемы с производительностью?
gst-launch-1.0 -v videotestsrc num-buffers=300 ! video/x-raw,format=YUY2,width=1920,height=1080,framerate=60/1! videoconvert ! video/x-raw,format=I420 ! \
tee name=t \
t. ! queue ! imxvpuenc_h264 ! h264parse ! mp4mux ! filesink location="test-3.mp4" \
t. ! queue ! imxipuvideosink