Имеется USB-камера, которая отправляет кадры H264 с частотой 30 кадров в секунду в разрешении 1920x1080, размере GOP 30 или 60 (1 или 2 I кадра на каждый секунда в зависимости от камеры и только P-кадров), что требует пропускной способности около 6 Мбит/с. Необходимо снизить ее до уровня не более 2 Мбит/с. Все это делается на слабом ARMv7, поэтому вариант перекодирования крайне ресурсоемкий, особенно если учесть, что я не нашел, как это сделать в виде GPU Mali (NanoPi Neo Core).
# ./ffmpeg -hide_banner -codecs | grep h264
DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_v4l2m2m ) (encoders: libx264 libx264rgb h264_v4l2m2m )
# sudo ./ffmpeg -hide_banner -f v4l2 -input_format h264 -c:v h264_v4l2m2m -video_size 1920x1080 -threads 4 -i /dev/video0 -f null -
[h264 @ 0x149bb30] Increasing reorder buffer to 1
Input #0, video4linux2,v4l2, from '/dev/video0':
Duration: N/A, start: 269427.784703, bitrate: N/A
Stream #0:0: Video: h264 (Baseline), yuvj420p(pc, bt709, progressive), 1920x1080, 30 fps, 30 tbr, 1000k tbn
[h264_v4l2m2m @ 0x160fd40] Could not find a valid device
[h264_v4l2m2m @ 0x160fd40] can't configure decoder
Stream mapping:
Stream #0:0 -> #0:0 (h264 (h264_v4l2m2m) -> wrapped_avframe (native))
Error while opening decoder for input stream #0:0 : Invalid argument
Учитывая, что основной функционал выполнен на фреймворке ffmpeg, можно ли снизить частоту кадров, в идеале до 10 кадров в секунду ,БЕЗ потери качества и декодирования?
может я разобрался как определить только I кадры из НАЛУ
(AVPacket.data[4] & 0x1F) == 7
Подробнее здесь: https://stackoverflow.com/questions/784 ... n-for-h264
Снижение FPS для H264 ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Не удалось создать HWDeviceContext для h264 и Videotoolbox с помощью FFmpeg для iOS
Anonymous » » в форуме C++ - 0 Ответы
- 26 Просмотры
-
Последнее сообщение Anonymous
-