raspberrypi / rpicam-apps

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[BUG] --circular option not working for h264 on rpi5 with rpicam-vid

ddbaron opened this issue · comments

Describe the bug
The --circular argument is ignored for h264 (and libav) on rpi5/bookworm with rpicam-vid.

I have tested with a command line similar to what I used successfully on my rpi4/buster:
libcamera-vid --level 4.2 --circular 1 --inline --width 1440 --height 320 --framerate 193 --shutter 100 --gain 16.0 --brightness 0.0 --contrast 1.0 --saturation 0.0 --sharpness 1.0 --denoise cdn_off --save-pts /dev/shm/tst.pts -t 0 -o /dev/shm/output.h264 -n
And also with the command line from the documentation (see my results below):
rpicam-vid -t 0 --keypress --inline --circular -o test.h264

Bug report
cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 12 (bookworm)" NAME="Debian GNU/Linux" VERSION_ID="12" VERSION="12 (bookworm)" VERSION_CODENAME=bookworm
uname -a Linux rpi5 6.1.0-rpi8-rpi-2712 #1 SMP PREEMPT Debian 1:6.1.73-1+rpt1 (2024-01-25) aarch64 GNU/Linux

bug.txt

Additional context
Using the following:
rpicam-vid -t 0 --keypress --inline --circular -o /dev/shm/test.h264

The output file is immediately written when rpicam-vid starts (it should write a 0 byte file and on exit or signal dump the buffer). It just continues to fill up, here is a snapshot after running 20+ seconds:

ddbaron@rpi5:~ $ ls -al /dev/shm total 12320 .... -rw-r--r-- 1 ddbaron ddbaron 12582912 Feb 26 11:37 test.h264

commented

Forum thread https://forums.raspberrypi.com/viewtopic.php?t=365356

If a subject has already been discussed on the forums, please include a link if you raise a Github issue. It saves going over the same ground again.

Pi 5 uses the libav encoder framework for video encoding. I have not found a simple way of enabling the --circular option with libav, it definitely won't be possible with containers like mkv/mov.

I will look into it at some point in the future, but this will be a low priority item on my list.

Thank you for investigating. I will focus now on creating a workaround as this is a low priority for you. I need this primarily for use with mp4, and I view this as a key feature of libcamera-vid / rpicam-vid.

If you don't have any near-term plans to address the defect (or remove the feature from use with rpi5), would it make sense to update https://www.raspberrypi.com/documentation/computers/camera_software.html#known-issues? The docs are wrong, the test case doesn't work, the feature isn't usable on rpi5, it's not clear which codec's, if any, work with --circular. I tried mjpeg and yuv and as I recall one worked and the other didn't.

Thanks

I'll add a note to the documentation as suggested.