Open danieltwagner opened 4 years ago
I found this resolved issue: https://github.com/mpromonet/v4l2rtspserver/issues/162
Neither -r
nor -B
or the combination of both appears to make any difference.
$ strace v4l2rtspserver -W 1640 -H 1232 -F 25 -P 8555 -S /dev/video0 -vv -r -B 2>&1 | grep -v gettimeofday
[... the process is now waiting for a connection]
_newselect(4, [3], [], [], {tv_sec=0, tv_usec=9472}) = 0 (Timeout)
_newselect(4, [3], [], [], {tv_sec=0, tv_usec=9482}) = 0 (Timeout)
_newselect(4, [3], [], [], {tv_sec=0, tv_usec=9476}) = 1 (in [3], left {tv_sec=0, tv_usec=8669})
accept(3, {sa_family=AF_INET, sin_port=htons(51463), sin_addr=inet_addr("10.0.102.130")}, [16]) = 5
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6bb3120}, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6bb3120}, 8) = 0
fcntl64(5, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(5, F_SETFL, O_RDWR|O_NONBLOCK) = 0
getsockopt(5, SOL_SOCKET, SO_SNDBUF, [102400], [4]) = 0
getsockopt(5, SOL_SOCKET, SO_SNDBUF, [102400], [4]) = 0
brk(0x8fc000) = 0x8fc000
_newselect(6, [3 5], [], [5], {tv_sec=0, tv_usec=7743}) = 1 (in [5], left {tv_sec=0, tv_usec=7695})
recvfrom(5, "OPTIONS rtsp://pi-camera"..., 20000, 0, 0xbeacfe8c, [16->0]) = 133
send(5, "RTSP/1.0 200 OK\r\nCSeq: 2\r\nDate: "..., 152, 0) = 152
_newselect(6, [3 5], [], [5], {tv_sec=0, tv_usec=9479}) = 1 (in [5], left {tv_sec=0, tv_usec=1024})
recvfrom(5, "DESCRIBE rtsp://pi-camera"..., 20000, 0, 0xbeacfe8c, [16->0]) = 159
socket(AF_INET, SOCK_DGRAM|SOCK_CLOEXEC, IPPROTO_IP) = 6
setsockopt(6, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
setsockopt(6, SOL_SOCKET, SO_REUSEPORT, [1], 4) = 0
setsockopt(6, SOL_IP, IP_MULTICAST_LOOP, "\1", 1) = 0
fcntl64(6, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(6, F_SETFL, O_RDWR|O_NONBLOCK) = 0
getsockopt(6, SOL_SOCKET, SO_SNDBUF, [180224], [4]) = 0
getsockopt(6, SOL_SOCKET, SO_SNDBUF, [180224], [4]) = 0
mmap2(NULL, 2052096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb5c0b000
munmap(0xb5c0b000, 2052096) = 0
close(6) = 0
getsockname(5, {sa_family=AF_INET, sin_port=htons(8555), sin_addr=inet_addr("10.0.102.237")}, [16]) = 0
send(5, "RTSP/1.0 200 OK\r\nCSeq: 3\r\nDate: "..., 631, 0) = 631
_newselect(6, [3 5], [], [5], {tv_sec=0, tv_usec=9641}) = 1 (in [5], left {tv_sec=0, tv_usec=3748})
recvfrom(5, "SETUP rtsp://10.0.102.237:8555/u"..., 20000, 0, 0xbeacfe8c, [16->0]) = 183
getsockname(5, {sa_family=AF_INET, sin_port=htons(8555), sin_addr=inet_addr("10.0.102.237")}, [16]) = 0
socket(AF_INET, SOCK_DGRAM|SOCK_CLOEXEC, IPPROTO_IP) = 6
setsockopt(6, SOL_SOCKET, SO_REUSEADDR, [0], 4) = 0
setsockopt(6, SOL_SOCKET, SO_REUSEPORT, [0], 4) = 0
setsockopt(6, SOL_IP, IP_MULTICAST_LOOP, "\1", 1) = 0
bind(6, {sa_family=AF_INET, sin_port=htons(6970), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
socket(AF_INET, SOCK_DGRAM|SOCK_CLOEXEC, IPPROTO_IP) = 7
setsockopt(7, SOL_SOCKET, SO_REUSEADDR, [0], 4) = 0
setsockopt(7, SOL_SOCKET, SO_REUSEPORT, [0], 4) = 0
setsockopt(7, SOL_IP, IP_MULTICAST_LOOP, "\1", 1) = 0
bind(7, {sa_family=AF_INET, sin_port=htons(6971), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
fcntl64(6, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(6, F_SETFL, O_RDWR|O_NONBLOCK) = 0
getsockopt(6, SOL_SOCKET, SO_SNDBUF, [180224], [4]) = 0
getsockopt(6, SOL_SOCKET, SO_SNDBUF, [180224], [4]) = 0
mmap2(NULL, 2052096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb5c0b000
getsockopt(6, SOL_SOCKET, SO_SNDBUF, [180224], [4]) = 0
getsockopt(6, SOL_SOCKET, SO_SNDBUF, [180224], [4]) = 0
send(5, "RTSP/1.0 200 OK\r\nCSeq: 4\r\nDate: "..., 214, 0) = 214
_newselect(6, [3 5], [], [5], {tv_sec=0, tv_usec=8935}) = 1 (in [5], left {tv_sec=0, tv_usec=2411})
recvfrom(5, "PLAY rtsp://10.0.102.237:8555/un"..., 20000, 0, 0xbeacfe8c, [16->0]) = 162
getsockname(5, {sa_family=AF_INET, sin_port=htons(8555), sin_addr=inet_addr("10.0.102.237")}, [16]) = 0
fcntl64(7, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(7, F_SETFL, O_RDWR|O_NONBLOCK) = 0
getsockopt(7, SOL_SOCKET, SO_SNDBUF, [180224], [4]) = 0
getsockopt(7, SOL_SOCKET, SO_SNDBUF, [180224], [4]) = 0
write(2, "RTCPInstance::RTCPInstance error"..., 77RTCPInstance::RTCPInstance error: totSessionBW parameter should not be zero!
) = 77
setsockopt(7, SOL_IP, IP_MULTICAST_TTL, "\377", 1) = 0
sendto(7, "\200\310\0\6\17K\247E\342\311\241W\317\215\35\212\227\216\255b\0\0\0\0\0\0\0\0\201\312\0\7"..., 60, 0, {sa_family=AF_INET, sin_port=htons(61459), sin_addr=inet_addr("10.0.102.130")}, 16) = 60
getsockname(7, {sa_family=AF_INET, sin_port=htons(6971), sin_addr=inet_addr("0.0.0.0")}, [16]) = 0
mmap2(NULL, 2052096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb5a16000
send(5, "RTSP/1.0 200 OK\r\nCSeq: 5\r\nDate: "..., 187, 0) = 187
_newselect(8, [3 5 7], [], [5], {tv_sec=0, tv_usec=9607}) = 1 (in [7], left {tv_sec=0, tv_usec=9566})
recvfrom(7, "\316\372\355\376", 1422, 0, {sa_family=AF_INET, sin_port=htons(61459), sin_addr=inet_addr("10.0.102.130")}, [16]) = 4
_newselect(8, [3 5 7], [], [5], {tv_sec=0, tv_usec=1753}) = 1 (in [7], left {tv_sec=0, tv_usec=1712})
recvfrom(7, "\316\372\355\376", 1422, 0, {sa_family=AF_INET, sin_port=htons(61459), sin_addr=inet_addr("10.0.102.130")}, [16]) = 4
_newselect(8, [3 5 7], [], [5], {tv_sec=0, tv_usec=9646}) = 0 (Timeout)
_newselect(8, [3 5 7], [], [5], {tv_sec=0, tv_usec=9643}) = 0 (Timeout)
_newselect(8, [3 5 7], [], [5], {tv_sec=0, tv_usec=9655}) = 0 (Timeout)
[keeps repeating]
Hi,
In order to analyze strace output you should either add -f
option to strace in order to follow threads or add -s
option to use only main thread.
I made a quick try with kernel 5.4.51-v7+ on a raspberry pi2 but did not have the problem you describe.
Best Regards, Michel.
Thanks for your prompt response, Michel. I'm not sure if that sheds a whole lot more light but for completeness I'm including the top of the main thread as well:
$ strace -o out -fff v4l2rtspserver -W 1640 -H 1232 -F 25 -P 8555 -S /dev/video0 -vv -r -B 2>&1 | grep -v gettimeofday
out.828
execve("/usr/local/bin/v4l2rtspserver", ["v4l2rtspserver", "-W", "1640", "-H", "1232", "-F", "25", "-P", "8555", "-S", "/dev/video0", "-vv", "-r", "-B"], 0xbeb5b6e0 /* 20 vars */) = 0
brk(NULL) = 0xe91000
uname({sysname="Linux", nodename="pi-camera", ...}) = 0
access("/etc/ld.so.preload", R_OK) = 0
openat(AT_FDCWD, "/etc/ld.so.preload", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=54, ...}) = 0
mmap2(NULL, 54, PROT_READ|PROT_WRITE, MAP_PRIVATE, 3, 0) = 0xb6f35000
close(3) = 0
readlink("/proc/self/exe", "/usr/local/bin/v4l2rtspserver", 4096) = 29
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/libarmmem-v6l.so", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\250\3\0\0004\0\0\0"..., 512) = 512
_llseek(3, 8552, [8552], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 960) = 960
_llseek(3, 8232, [8232], SEEK_SET) = 0
read(3, "A*\0\0\0aeabi\0\1 \0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 43) = 43
_llseek(3, 8552, [8552], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 960) = 960
_llseek(3, 8232, [8232], SEEK_SET) = 0
read(3, "A*\0\0\0aeabi\0\1 \0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 43) = 43
_llseek(3, 8552, [8552], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 960) = 960
_llseek(3, 8232, [8232], SEEK_SET) = 0
read(3, "A*\0\0\0aeabi\0\1 \0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 43) = 43
_llseek(3, 8552, [8552], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 960) = 960
_llseek(3, 8232, [8232], SEEK_SET) = 0
read(3, "A*\0\0\0aeabi\0\1 \0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 43) = 43
_llseek(3, 8552, [8552], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 960) = 960
_llseek(3, 8232, [8232], SEEK_SET) = 0
read(3, "A*\0\0\0aeabi\0\1 \0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 43) = 43
_llseek(3, 8552, [8552], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 960) = 960
_llseek(3, 8232, [8232], SEEK_SET) = 0
read(3, "A*\0\0\0aeabi\0\1 \0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 43) = 43
fstat64(3, {st_mode=S_IFREG|0644, st_size=9512, ...}) = 0
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f33000
mmap2(NULL, 73772, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6ef3000
mprotect(0xb6ef5000, 61440, PROT_NONE) = 0
mmap2(0xb6f04000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0xb6f04000
close(3) = 0
munmap(0xb6f35000, 54) = 0
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=28908, ...}) = 0
mmap2(NULL, 28908, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb6f2b000
close(3) = 0
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/liblog4cpp.so.5", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0(\20\1\0004\0\0\0"..., 512) = 512
_llseek(3, 206740, [206740], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1080) = 1080
_llseek(3, 206384, [206384], SEEK_SET) = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
_llseek(3, 206740, [206740], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1080) = 1080
_llseek(3, 206384, [206384], SEEK_SET) = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
_llseek(3, 206740, [206740], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1080) = 1080
_llseek(3, 206384, [206384], SEEK_SET) = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
_llseek(3, 206740, [206740], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1080) = 1080
_llseek(3, 206384, [206384], SEEK_SET) = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
_llseek(3, 206740, [206740], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1080) = 1080
_llseek(3, 206384, [206384], SEEK_SET) = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
_llseek(3, 206740, [206740], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1080) = 1080
_llseek(3, 206384, [206384], SEEK_SET) = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
fstat64(3, {st_mode=S_IFREG|0644, st_size=207820, ...}) = 0
mmap2(NULL, 272572, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6eb0000
mprotect(0xb6ee1000, 65536, PROT_NONE) = 0
mmap2(0xb6ef1000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x31000) = 0xb6ef1000
close(3) = 0
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/libstdc++.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0@\343\6\0004\0\0\0"..., 512) = 512
_llseek(3, 1264288, [1264288], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1240) = 1240
_llseek(3, 1263696, [1263696], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 1264288, [1264288], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1240) = 1240
_llseek(3, 1263696, [1263696], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 1264288, [1264288], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1240) = 1240
_llseek(3, 1263696, [1263696], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 1264288, [1264288], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1240) = 1240
_llseek(3, 1263696, [1263696], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 1264288, [1264288], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1240) = 1240
_llseek(3, 1263696, [1263696], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 1264288, [1264288], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1240) = 1240
_llseek(3, 1263696, [1263696], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 1264288, [1264288], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1240) = 1240
_llseek(3, 1263696, [1263696], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
fstat64(3, {st_mode=S_IFREG|0644, st_size=1265528, ...}) = 0
mmap2(NULL, 1337068, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6d69000
mprotect(0xb6e97000, 65536, PROT_NONE) = 0
mmap2(0xb6ea7000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12e000) = 0xb6ea7000
mmap2(0xb6eae000, 5868, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6eae000
close(3) = 0
openat(AT_FDCWD, "/lib/arm-linux-gnueabihf/libm.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\240r\0\0004\0\0\0"..., 512) = 512
_llseek(3, 463312, [463312], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1080) = 1080
_llseek(3, 462960, [462960], SEEK_SET) = 0
read(3, "A0\0\0\0aeabi\0\1&\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 49) = 49
_llseek(3, 463312, [463312], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1080) = 1080
_llseek(3, 462960, [462960], SEEK_SET) = 0
read(3, "A0\0\0\0aeabi\0\1&\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 49) = 49
_llseek(3, 463312, [463312], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1080) = 1080
_llseek(3, 462960, [462960], SEEK_SET) = 0
read(3, "A0\0\0\0aeabi\0\1&\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 49) = 49
fstat64(3, {st_mode=S_IFREG|0644, st_size=464392, ...}) = 0
mmap2(NULL, 528504, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6ce7000
mprotect(0xb6d58000, 61440, PROT_NONE) = 0
mmap2(0xb6d67000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x70000) = 0xb6d67000
close(3) = 0
openat(AT_FDCWD, "/lib/arm-linux-gnueabihf/libgcc_s.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\270\321\0\0004\0\0\0"..., 512) = 512
_llseek(3, 115284, [115284], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1040) = 1040
_llseek(3, 114940, [114940], SEEK_SET) = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
_llseek(3, 115284, [115284], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1040) = 1040
_llseek(3, 114940, [114940], SEEK_SET) = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
_llseek(3, 115284, [115284], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1040) = 1040
_llseek(3, 114940, [114940], SEEK_SET) = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
_llseek(3, 115284, [115284], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1040) = 1040
_llseek(3, 114940, [114940], SEEK_SET) = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
_llseek(3, 115284, [115284], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1040) = 1040
_llseek(3, 114940, [114940], SEEK_SET) = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
_llseek(3, 115284, [115284], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1040) = 1040
_llseek(3, 114940, [114940], SEEK_SET) = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
fstat64(3, {st_mode=S_IFREG|0644, st_size=116324, ...}) = 0
mmap2(NULL, 180532, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6cba000
mprotect(0xb6cd6000, 61440, PROT_NONE) = 0
mmap2(0xb6ce5000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b000) = 0xb6ce5000
close(3) = 0
openat(AT_FDCWD, "/lib/arm-linux-gnueabihf/libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\224O\0\0004\0\0\0"..., 512) = 512
_llseek(3, 129016, [129016], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1400) = 1400
_llseek(3, 94664, [94664], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 129016, [129016], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1400) = 1400
_llseek(3, 94664, [94664], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 129016, [129016], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1400) = 1400
_llseek(3, 94664, [94664], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 129016, [129016], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1400) = 1400
_llseek(3, 94664, [94664], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 129016, [129016], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1400) = 1400
_llseek(3, 94664, [94664], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 129016, [129016], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1400) = 1400
_llseek(3, 94664, [94664], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
fstat64(3, {st_mode=S_IFREG|0755, st_size=130416, ...}) = 0
mmap2(NULL, 168560, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6c90000
mprotect(0xb6ca7000, 61440, PROT_NONE) = 0
mmap2(0xb6cb6000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16000) = 0xb6cb6000
mmap2(0xb6cb8000, 4720, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6cb8000
close(3) = 0
openat(AT_FDCWD, "/lib/arm-linux-gnueabihf/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\300x\1\0004\0\0\0"..., 512) = 512
_llseek(3, 1293204, [1293204], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2800) = 2800
_llseek(3, 1289788, [1289788], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 1293204, [1293204], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2800) = 2800
_llseek(3, 1289788, [1289788], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 1293204, [1293204], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2800) = 2800
_llseek(3, 1289788, [1289788], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 1293204, [1293204], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2800) = 2800
_llseek(3, 1289788, [1289788], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 1293204, [1293204], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2800) = 2800
_llseek(3, 1289788, [1289788], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 1293204, [1293204], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2800) = 2800
_llseek(3, 1289788, [1289788], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
fstat64(3, {st_mode=S_IFREG|0755, st_size=1296004, ...}) = 0
mmap2(NULL, 1364764, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6b42000
mprotect(0xb6c7a000, 65536, PROT_NONE) = 0
mmap2(0xb6c8a000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x138000) = 0xb6c8a000
mmap2(0xb6c8d000, 8988, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6c8d000
close(3) = 0
openat(AT_FDCWD, "/lib/arm-linux-gnueabihf/libnsl.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\340/\0\0004\0\0\0"..., 512) = 512
_llseek(3, 70496, [70496], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1080) = 1080
_llseek(3, 70148, [70148], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 70496, [70496], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1080) = 1080
_llseek(3, 70148, [70148], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 70496, [70496], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1080) = 1080
_llseek(3, 70148, [70148], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
fstat64(3, {st_mode=S_IFREG|0644, st_size=71576, ...}) = 0
mmap2(NULL, 145164, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6b1e000
mprotect(0xb6b2f000, 61440, PROT_NONE) = 0
mmap2(0xb6b3e000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x10000) = 0xb6b3e000
mmap2(0xb6b40000, 5900, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6b40000
close(3) = 0
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f29000
set_tls(0xb6f29950) = 0
mprotect(0xb6c8a000, 8192, PROT_READ) = 0
mprotect(0xb6b3e000, 4096, PROT_READ) = 0
mprotect(0xb6cb6000, 4096, PROT_READ) = 0
mprotect(0xb6ce5000, 4096, PROT_READ) = 0
mprotect(0xb6d67000, 4096, PROT_READ) = 0
mprotect(0xb6ea7000, 20480, PROT_READ) = 0
mprotect(0xb6ef1000, 4096, PROT_READ) = 0
mprotect(0xb6f04000, 4096, PROT_READ) = 0
mprotect(0x110000, 4096, PROT_READ) = 0
mprotect(0xb6f36000, 4096, PROT_READ) = 0
munmap(0xb6f2b000, 28908) = 0
set_tid_address(0xb6f294f8) = 828
set_robust_list(0xb6f29500, 12) = 0
rt_sigaction(SIGRTMIN, {sa_handler=0xb6c948e8, sa_mask=[], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0xb6b6f130}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {sa_handler=0xb6c949a4, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART|SA_SIGINFO, sa_restorer=0xb6b6f130}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
ugetrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
brk(NULL) = 0xe91000
brk(0xeb2000) = 0xeb2000
futex(0xb6eae2c0, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0xb6eae2c4, FUTEX_WAKE_PRIVATE, 2147483647) = 0
gettimeofday({tv_sec=1595879551, tv_usec=990640}, NULL) = 0
gettimeofday({tv_sec=1595879551, tv_usec=992997}, NULL) = 0
openat(AT_FDCWD, "/etc/localtime", O_RDONLY|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=3687, ...}) = 0
fstat64(3, {st_mode=S_IFREG|0644, st_size=3687, ...}) = 0
read(3, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0\10\0\0\0\0"..., 4096) = 3687
_llseek(3, -2347, [1340], SEEK_CUR) = 0
read(3, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0\10\0\0\0\0"..., 4096) = 2347
close(3) = 0
write(1, "2020-07-27 20:52:31,992 [INFO ]"..., 100) = 100
gettimeofday({tv_sec=1595879552, tv_usec=28}, NULL) = 0
write(1, "2020-07-27 20:52:32,000 [NOTICE]"..., 127) = 127
gettimeofday({tv_sec=1595879552, tv_usec=5002}, NULL) = 0
gettimeofday({tv_sec=1595879552, tv_usec=5475}, NULL) = 0
socket(AF_INET, SOCK_STREAM|SOCK_CLOEXEC, IPPROTO_IP) = 3
setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
bind(3, {sa_family=AF_INET, sin_port=htons(8555), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
fcntl64(3, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
setsockopt(3, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
setsockopt(3, SOL_TCP, TCP_KEEPIDLE, [180], 4) = 0
setsockopt(3, SOL_TCP, TCP_KEEPCNT, [5], 4) = 0
setsockopt(3, SOL_TCP, TCP_KEEPINTVL, [20], 4) = 0
getsockopt(3, SOL_SOCKET, SO_SNDBUF, [16384], [4]) = 0
setsockopt(3, SOL_SOCKET, SO_SNDBUF, [51200], 4) = 0
listen(3, 20) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6b6f120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
socket(AF_INET, SOCK_DGRAM|SOCK_CLOEXEC, IPPROTO_IP) = 4
setsockopt(4, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
setsockopt(4, SOL_SOCKET, SO_REUSEPORT, [1], 4) = 0
setsockopt(4, SOL_IP, IP_MULTICAST_LOOP, "\1", 1) = 0
bind(4, {sa_family=AF_INET, sin_port=htons(15947), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
setsockopt(4, SOL_IP, IP_ADD_MEMBERSHIP, {imr_multiaddr=inet_addr("228.67.43.91"), imr_interface=inet_addr("0.0.0.0")}, 8) = 0
setsockopt(4, SOL_IP, IP_MULTICAST_ALL, [0], 4) = 0
setsockopt(4, SOL_IP, IP_MULTICAST_TTL, "\0", 1) = 0
sendto(4, "hostIdTest\0", 11, 0, {sa_family=AF_INET, sin_port=htons(15947), sin_addr=inet_addr("228.67.43.91")}, 16) = 11
_newselect(5, [4], NULL, NULL, {tv_sec=5, tv_usec=0}) = 1 (in [4], left {tv_sec=4, tv_usec=999969})
recvfrom(4, "hostIdTest\0", 20, 0, {sa_family=AF_INET, sin_port=htons(15947), sin_addr=inet_addr("10.0.102.237")}, [16]) = 11
setsockopt(4, SOL_IP, IP_DROP_MEMBERSHIP, {imr_multiaddr=inet_addr("228.67.43.91"), imr_interface=inet_addr("0.0.0.0")}, 8) = 0
close(4) = 0
gettimeofday({tv_sec=1595879552, tv_usec=28199}, NULL) = 0
gettimeofday({tv_sec=1595879552, tv_usec=29481}, NULL) = 0
write(1, "2020-07-27 20:52:32,029 [NOTICE]"..., 106) = 106
stat64("/dev/video0", {st_mode=S_IFCHR|0660, st_rdev=makedev(0x51, 0x7), ...}) = 0
openat(AT_FDCWD, "/dev/video0", O_RDWR|O_LARGEFILE) = 4
ioctl(4, VIDIOC_QUERYCAP, {driver="bm2835 mmal", card="mmal service 16.1", bus_info="platform:bcm2835-v4l2", version=5.4.51, capabilities=V4L2_CAP_VIDEO_CAPTURE|V4L2_CAP_VIDEO_OVERLAY|V4L2_CAP_READWRITE|V4L2_CAP_STREAMING|V4L2_CAP_DEVICE_CAPS|V4L2_CAP_EXT_PIX_FORMAT, device_caps=V4L2_CAP_VIDEO_CAPTURE|V4L2_CAP_VIDEO_OVERLAY|V4L2_CAP_READWRITE|V4L2_CAP_STREAMING|V4L2_CAP_EXT_PIX_FORMAT}) = 0
gettimeofday({tv_sec=1595879552, tv_usec=38447}, NULL) = 0
write(1, "2020-07-27 20:52:32,038 [NOTICE]"..., 154) = 154
gettimeofday({tv_sec=1595879552, tv_usec=42983}, NULL) = 0
write(1, "2020-07-27 20:52:32,042 [NOTICE]"..., 123) = 123
gettimeofday({tv_sec=1595879552, tv_usec=50081}, NULL) = 0
write(1, "2020-07-27 20:52:32,050 [NOTICE]"..., 126) = 126
gettimeofday({tv_sec=1595879552, tv_usec=56643}, NULL) = 0
write(1, "2020-07-27 20:52:32,056 [NOTICE]"..., 125) = 125
ioctl(4, VIDIOC_G_FMT, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE, fmt.pix={width=1640, height=1232, pixelformat=v4l2_fourcc('H', '2', '6', '4') /* V4L2_PIX_FMT_H264 */, field=V4L2_FIELD_NONE, bytesperline=0, sizeimage=2050048, colorspace=V4L2_COLORSPACE_SMPTE170M}}) = 0
gettimeofday({tv_sec=1595879552, tv_usec=63245}, NULL) = 0
write(1, "2020-07-27 20:52:32,063 [DEBUG ]"..., 145) = 145
ioctl(4, VIDIOC_S_FMT, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE, fmt.pix={width=1640, height=1232, pixelformat=v4l2_fourcc('H', '2', '6', '4') /* V4L2_PIX_FMT_H264 */, field=V4L2_FIELD_ANY, bytesperline=0, sizeimage=0, colorspace=0 /* V4L2_COLORSPACE_??? */} => fmt.pix={width=1640, height=1232, pixelformat=v4l2_fourcc('H', '2', '6', '4') /* V4L2_PIX_FMT_H264 */, field=V4L2_FIELD_NONE, bytesperline=0, sizeimage=2050048, colorspace=V4L2_COLORSPACE_SMPTE170M}}) = 0
gettimeofday({tv_sec=1595879552, tv_usec=73956}, NULL) = 0
write(1, "2020-07-27 20:52:32,073 [NOTICE]"..., 146) = 146
ioctl(4, VIDIOC_G_FMT, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE, fmt.pix={width=1640, height=1232, pixelformat=v4l2_fourcc('H', '2', '6', '4') /* V4L2_PIX_FMT_H264 */, field=V4L2_FIELD_NONE, bytesperline=0, sizeimage=2050048, colorspace=V4L2_COLORSPACE_SMPTE170M}}) = 0
gettimeofday({tv_sec=1595879552, tv_usec=79076}, NULL) = 0
write(1, "2020-07-27 20:52:32,079 [DEBUG ]"..., 145) = 145
ioctl(4, VIDIOC_S_PARM, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE, parm.capture={capability=0, capturemode=0, timeperframe=1/25, extendedmode=0, readbuffers=0} => parm.capture={capability=V4L2_CAP_TIMEPERFRAME, capturemode=0, timeperframe=1/25, extendedmode=0, readbuffers=1}}) = 0
gettimeofday({tv_sec=1595879552, tv_usec=89357}, NULL) = 0
write(1, "2020-07-27 20:52:32,089 [NOTICE]"..., 104) = 104
gettimeofday({tv_sec=1595879552, tv_usec=94817}, NULL) = 0
write(1, "2020-07-27 20:52:32,094 [NOTICE]"..., 106) = 106
gettimeofday({tv_sec=1595879552, tv_usec=102016}, NULL) = 0
write(1, "2020-07-27 20:52:32,102 [NOTICE]"..., 102) = 102
mmap2(NULL, 8392704, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0xb631d000
mprotect(0xb631e000, 8388608, PROT_READ|PROT_WRITE) = 0
clone(child_stack=0xb6b1cf88, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0xb6b1d4b8, tls=0xb6b1d910, child_tidptr=0xb6b1d4b8) = 829
uname({sysname="Linux", nodename="pi-camera", ...}) = 0
mmap2(NULL, 2052096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6128000
mmap2(NULL, 200704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb60f7000
mmap2(NULL, 2052096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb5f02000
gettimeofday({tv_sec=1595879552, tv_usec=113384}, NULL) = 0
write(1, "2020-07-27 20:52:32,113 [DEBUG ]"..., 100) = 100
gettimeofday({tv_sec=1595879552, tv_usec=118782}, NULL) = 0
gettimeofday({tv_sec=1595879552, tv_usec=120136}, NULL) = 0
write(1, "2020-07-27 20:52:32,120 [NOTICE]"..., 145) = 145
gettimeofday({tv_sec=1595879552, tv_usec=126442}, NULL) = 0
write(1, "2020-07-27 20:52:32,126 [NOTICE]"..., 116) = 116
gettimeofday({tv_sec=1595879552, tv_usec=133719}, NULL) = 0
write(1, "2020-07-27 20:52:32,133 [NOTICE]"..., 115) = 115
uname({sysname="Linux", nodename="pi-camera", ...}) = 0
gettimeofday({tv_sec=1595879552, tv_usec=140070}, NULL) = 0
gettimeofday({tv_sec=1595879552, tv_usec=141297}, NULL) = 0
write(1, "2020-07-27 20:52:32,141 [NOTICE]"..., 150) = 150
rt_sigaction(SIGINT, {sa_handler=0x602b0, sa_mask=[INT], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6b6f120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
gettimeofday({tv_sec=1595879552, tv_usec=148384}, NULL) = 0
_newselect(4, [3], [], [], {tv_sec=0, tv_usec=0}) = 0 (Timeout)
gettimeofday({tv_sec=1595879552, tv_usec=149155}, NULL) = 0
gettimeofday({tv_sec=1595879552, tv_usec=149489}, NULL) = 0
_newselect(4, [3], [], [], {tv_sec=0, tv_usec=9666}) = 0 (Timeout)
gettimeofday({tv_sec=1595879552, tv_usec=162274}, NULL) = 0
gettimeofday({tv_sec=1595879552, tv_usec=162653}, NULL) = 0
gettimeofday({tv_sec=1595879552, tv_usec=162990}, NULL) = 0
[...]
_newselect(4, [3], [], [], {tv_sec=0, tv_usec=9516}) = 0 (Timeout)
gettimeofday({tv_sec=1595879555, tv_usec=640398}, NULL) = 0
gettimeofday({tv_sec=1595879555, tv_usec=640895}, NULL) = 0
gettimeofday({tv_sec=1595879555, tv_usec=641432}, NULL) = 0
_newselect(4, [3], [], [], {tv_sec=0, tv_usec=9463}) = 1 (in [3], left {tv_sec=0, tv_usec=0})
accept(3, {sa_family=AF_INET, sin_port=htons(51490), sin_addr=inet_addr("10.0.102.130")}, [16]) = 5
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6b6f120}, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6b6f120}, 8) = 0
fcntl64(5, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(5, F_SETFL, O_RDWR|O_NONBLOCK) = 0
getsockopt(5, SOL_SOCKET, SO_SNDBUF, [102400], [4]) = 0
getsockopt(5, SOL_SOCKET, SO_SNDBUF, [102400], [4]) = 0
brk(0xed3000) = 0xed3000
gettimeofday({tv_sec=1595879555, tv_usec=657977}, NULL) = 0
gettimeofday({tv_sec=1595879555, tv_usec=658479}, NULL) = 0
gettimeofday({tv_sec=1595879555, tv_usec=658958}, NULL) = 0
_newselect(6, [3 5], [], [5], {tv_sec=0, tv_usec=9521}) = 1 (in [5], left {tv_sec=0, tv_usec=9475})
recvfrom(5, "OPTIONS rtsp://pi-camera"..., 20000, 0, 0xbeff5e8c, [16->0]) = 133
gettimeofday({tv_sec=1595879555, tv_usec=661207}, NULL) = 0
send(5, "RTSP/1.0 200 OK\r\nCSeq: 2\r\nDate: "..., 152, 0) = 152
gettimeofday({tv_sec=1595879555, tv_usec=663235}, NULL) = 0
gettimeofday({tv_sec=1595879555, tv_usec=663873}, NULL) = 0
_newselect(6, [3 5], [], [5], {tv_sec=0, tv_usec=4606}) = 1 (in [5], left {tv_sec=0, tv_usec=0})
recvfrom(5, "DESCRIBE rtsp://pi-camera"..., 20000, 0, 0xbeff5e8c, [16->0]) = 159
socket(AF_INET, SOCK_DGRAM|SOCK_CLOEXEC, IPPROTO_IP) = 6
setsockopt(6, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
setsockopt(6, SOL_SOCKET, SO_REUSEPORT, [1], 4) = 0
setsockopt(6, SOL_IP, IP_MULTICAST_LOOP, "\1", 1) = 0
fcntl64(6, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(6, F_SETFL, O_RDWR|O_NONBLOCK) = 0
getsockopt(6, SOL_SOCKET, SO_SNDBUF, [180224], [4]) = 0
getsockopt(6, SOL_SOCKET, SO_SNDBUF, [180224], [4]) = 0
gettimeofday({tv_sec=1595879555, tv_usec=675635}, NULL) = 0
mmap2(NULL, 2052096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb5c0b000
munmap(0xb5c0b000, 2052096) = 0
close(6) = 0
getsockname(5, {sa_family=AF_INET, sin_port=htons(8555), sin_addr=inet_addr("10.0.102.237")}, [16]) = 0
gettimeofday({tv_sec=1595879555, tv_usec=679276}, NULL) = 0
send(5, "RTSP/1.0 200 OK\r\nCSeq: 3\r\nDate: "..., 632, 0) = 632
gettimeofday({tv_sec=1595879555, tv_usec=681289}, NULL) = 0
gettimeofday({tv_sec=1595879555, tv_usec=681803}, NULL) = 0
gettimeofday({tv_sec=1595879555, tv_usec=682297}, NULL) = 0
_newselect(6, [3 5], [], [5], {tv_sec=0, tv_usec=9506}) = 1 (in [5], left {tv_sec=0, tv_usec=1085})
recvfrom(5, "SETUP rtsp://10.0.102.237:8555/u"..., 20000, 0, 0xbeff5e8c, [16->0]) = 183
gettimeofday({tv_sec=1595879555, tv_usec=692955}, NULL) = 0
getsockname(5, {sa_family=AF_INET, sin_port=htons(8555), sin_addr=inet_addr("10.0.102.237")}, [16]) = 0
socket(AF_INET, SOCK_DGRAM|SOCK_CLOEXEC, IPPROTO_IP) = 6
setsockopt(6, SOL_SOCKET, SO_REUSEADDR, [0], 4) = 0
setsockopt(6, SOL_SOCKET, SO_REUSEPORT, [0], 4) = 0
setsockopt(6, SOL_IP, IP_MULTICAST_LOOP, "\1", 1) = 0
bind(6, {sa_family=AF_INET, sin_port=htons(6970), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
socket(AF_INET, SOCK_DGRAM|SOCK_CLOEXEC, IPPROTO_IP) = 7
setsockopt(7, SOL_SOCKET, SO_REUSEADDR, [0], 4) = 0
setsockopt(7, SOL_SOCKET, SO_REUSEPORT, [0], 4) = 0
setsockopt(7, SOL_IP, IP_MULTICAST_LOOP, "\1", 1) = 0
bind(7, {sa_family=AF_INET, sin_port=htons(6971), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
fcntl64(6, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(6, F_SETFL, O_RDWR|O_NONBLOCK) = 0
getsockopt(6, SOL_SOCKET, SO_SNDBUF, [180224], [4]) = 0
getsockopt(6, SOL_SOCKET, SO_SNDBUF, [180224], [4]) = 0
gettimeofday({tv_sec=1595879555, tv_usec=702107}, NULL) = 0
mmap2(NULL, 2052096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb5c0b000
getsockopt(6, SOL_SOCKET, SO_SNDBUF, [180224], [4]) = 0
getsockopt(6, SOL_SOCKET, SO_SNDBUF, [180224], [4]) = 0
gettimeofday({tv_sec=1595879555, tv_usec=704700}, NULL) = 0
send(5, "RTSP/1.0 200 OK\r\nCSeq: 4\r\nDate: "..., 214, 0) = 214
gettimeofday({tv_sec=1595879555, tv_usec=706601}, NULL) = 0
gettimeofday({tv_sec=1595879555, tv_usec=707134}, NULL) = 0
_newselect(6, [3 5], [], [5], {tv_sec=0, tv_usec=9467}) = 1 (in [5], left {tv_sec=0, tv_usec=3968})
recvfrom(5, "PLAY rtsp://10.0.102.237:8555/un"..., 20000, 0, 0xbeff5e8c, [16->0]) = 162
gettimeofday({tv_sec=1595879555, tv_usec=715009}, NULL) = 0
getsockname(5, {sa_family=AF_INET, sin_port=htons(8555), sin_addr=inet_addr("10.0.102.237")}, [16]) = 0
fcntl64(7, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(7, F_SETFL, O_RDWR|O_NONBLOCK) = 0
getsockopt(7, SOL_SOCKET, SO_SNDBUF, [180224], [4]) = 0
getsockopt(7, SOL_SOCKET, SO_SNDBUF, [180224], [4]) = 0
write(2, "RTCPInstance::RTCPInstance error"..., 77) = 77
gettimeofday({tv_sec=1595879555, tv_usec=721462}, NULL) = 0
gettimeofday({tv_sec=1595879555, tv_usec=722081}, NULL) = 0
gettimeofday({tv_sec=1595879555, tv_usec=722570}, NULL) = 0
gettimeofday({tv_sec=1595879555, tv_usec=723132}, NULL) = 0
gettimeofday({tv_sec=1595879555, tv_usec=723831}, NULL) = 0
setsockopt(7, SOL_IP, IP_MULTICAST_TTL, "\377", 1) = 0
sendto(7, "\200\310\0\6\361\246\230(\342\311\257\3\271L\375\t|\304\213\27\0\0\0\0\0\0\0\0\201\312\0\7"..., 60, 0, {sa_family=AF_INET, sin_port=htons(53531), sin_addr=inet_addr("10.0.102.130")}, 16) = 60
getsockname(7, {sa_family=AF_INET, sin_port=htons(6971), sin_addr=inet_addr("0.0.0.0")}, [16]) = 0
mmap2(NULL, 2052096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb5a16000
gettimeofday({tv_sec=1595879555, tv_usec=728681}, NULL) = 0
gettimeofday({tv_sec=1595879555, tv_usec=729215}, NULL) = 0
send(5, "RTSP/1.0 200 OK\r\nCSeq: 5\r\nDate: "..., 187, 0) = 187
gettimeofday({tv_sec=1595879555, tv_usec=731065}, NULL) = 0
gettimeofday({tv_sec=1595879555, tv_usec=731571}, NULL) = 0
_newselect(8, [3 5 7], [], [5], {tv_sec=0, tv_usec=9494}) = 1 (in [7], left {tv_sec=0, tv_usec=9440})
recvfrom(7, "\316\372\355\376", 1422, 0, {sa_family=AF_INET, sin_port=htons(53531), sin_addr=inet_addr("10.0.102.130")}, [16]) = 4
gettimeofday({tv_sec=1595879555, tv_usec=733796}, NULL) = 0
gettimeofday({tv_sec=1595879555, tv_usec=734322}, NULL) = 0
_newselect(8, [3 5 7], [], [5], {tv_sec=0, tv_usec=6743}) = 1 (in [7], left {tv_sec=0, tv_usec=6691})
recvfrom(7, "\316\372\355\376", 1422, 0, {sa_family=AF_INET, sin_port=htons(53531), sin_addr=inet_addr("10.0.102.130")}, [16]) = 4
gettimeofday({tv_sec=1595879555, tv_usec=737365}, NULL) = 0
gettimeofday({tv_sec=1595879555, tv_usec=737841}, NULL) = 0
_newselect(8, [3 5 7], [], [5], {tv_sec=0, tv_usec=3224}) = 0 (Timeout)
gettimeofday({tv_sec=1595879555, tv_usec=742289}, NULL) = 0
gettimeofday({tv_sec=1595879555, tv_usec=742793}, NULL) = 0
gettimeofday({tv_sec=1595879555, tv_usec=743262}, NULL) = 0
[...]
_newselect(8, [3 5 7], [], [5], {tv_sec=0, tv_usec=9514}) = 0 (Timeout)
gettimeofday({tv_sec=1595879557, tv_usec=879582}, NULL) = 0
gettimeofday({tv_sec=1595879557, tv_usec=880089}, NULL) = 0
gettimeofday({tv_sec=1595879557, tv_usec=880580}, NULL) = 0
_newselect(8, [3 5 7], [], [5], {tv_sec=0, tv_usec=9509}) = ? ERESTARTNOHAND (To be restarted if no handler)
--- SIGINT {si_signo=SIGINT, si_code=SI_KERNEL} ---
fstat64(1, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
sigreturn({mask=[]}) = -1 EINTR (Interrupted system call)
recvfrom(7, 0xeb3890, 1422, 0, 0xbeff5e84, [16]) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({tv_sec=1595879557, tv_usec=887935}, NULL) = 0
gettimeofday({tv_sec=1595879557, tv_usec=888609}, NULL) = 0
write(1, "2020-07-27 20:52:37,888 [NOTICE]"..., 85) = -1 EPIPE (Broken pipe)
--- SIGPIPE {si_signo=SIGPIPE, si_code=SI_USER, si_pid=828, si_uid=1000} ---
close(-1) = -1 EBADF (Bad file descriptor)
gettimeofday({tv_sec=1595879557, tv_usec=891682}, NULL) = 0
munmap(0xb5a16000, 2052096) = 0
munmap(0xb5c0b000, 2052096) = 0
close(6) = 0
close(7) = 0
close(5) = 0
munmap(0xb5f02000, 2052096) = 0
close(3) = 0
close(1) = 0
write(1, "SIGINT\n", 7) = -1 EBADF (Bad file descriptor)
exit_group(0) = ?
+++ exited with 0 +++
out.829
set_robust_list(0xb6b1d4c0, 12) = 0
mmap2(NULL, 2097152, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0xb5d02000
munmap(0xb5d02000, 1040384) = 0
munmap(0xb5f00000, 8192) = 0
mprotect(0xb5e00000, 135168, PROT_READ|PROT_WRITE) = 0
gettimeofday({tv_sec=1595879552, tv_usec=153269}, NULL) = 0
write(1, "2020-07-27 20:52:32,153 [NOTICE]"..., 97) = 97
_newselect(5, [4], NULL, NULL, {tv_sec=1, tv_usec=0}) = 0 (Timeout)
_newselect(5, [4], NULL, NULL, {tv_sec=1, tv_usec=0}) = 0 (Timeout)
_newselect(5, [4], NULL, NULL, {tv_sec=1, tv_usec=0}) = 0 (Timeout)
_newselect(5, [4], NULL, NULL, {tv_sec=1, tv_usec=0}) = 0 (Timeout)
_newselect(5, [4], NULL, NULL, {tv_sec=1, tv_usec=0}) = 0 (Timeout)
_newselect(5, [4], NULL, NULL, {tv_sec=1, tv_usec=0} <unfinished ...>) = ?
+++ exited with 0 +++
I was able to narrow it down to GPU memory consumption, but I'm not able to get it to work at the desired 1640x1232 (2x2 binning on Camera Module v2): This works as already mentioned above:
raspivid -t 0 --mode 4 -w 1640 -h 1232 --codec H264 -b 2500000 --profile high --level 4.2 --irefresh adaptive --inline -l -o tcp://0.0.0.0:3333 -v -a 127
... but ffmpeg fails with a somewhat useful error code:
$ ffmpeg -f v4l2 -input_format h264 -pix_fmt yuyv422 -video_size 1640x1232 -framerate 25 -i /dev/video0 -c:v copy -pix_fmt yuyv422 output.mkv
[...]
[video4linux2,v4l2 @ 0x189fec0] ioctl(VIDIOC_STREAMON): Operation not permitted
/dev/video0: Operation not permitted
It turns out that we fail to allocate some memory:
$ vcgencmd mem_reloc_stats
alloc failures: 1
compactions: 0
legacy block fails: 0
My /etc/config.txt
contains gpu_mem=128
and stats look like so when the pi is idle:
$ vcgencmd get_mem arm && vcgencmd get_mem gpu && vcgencmd get_mem malloc_total && vcgencmd get_mem malloc && vcgencmd get_mem reloc_total && vcgencmd get_mem reloc
arm=384M
gpu=128M
malloc_total=10M
malloc=8M
reloc_total=108M
reloc=106M
Running at 2x2-binned 1640x922 resolution, v4l2rtspserver works just fine:
$ v4l2rtspserver -W 1640 -H 922 -F 25 -P 8555 -S /dev/video0 -v
[...]
2020-08-02 15:12:50,018 [INFO ] - /home/pi/v4l2rtspserver/src/DeviceSource.cpp:29
outtv_sec:1596377570 fps:27 bandwidth:2551kbps
2020-08-02 15:12:51,015 [INFO ] - /home/pi/v4l2rtspserver/src/DeviceSource.cpp:29
intv_sec:1596377571 fps:25 bandwidth:2324kbps
Memory looks happy:
$ vcgencmd get_mem arm && vcgencmd get_mem gpu && vcgencmd get_mem malloc_total && vcgencmd get_mem malloc && vcgencmd get_mem reloc_total && vcgencmd get_mem reloc
arm=384M
gpu=128M
malloc_total=10M
malloc=5M
reloc_total=108M
reloc=39M
ffmpeg continues to be unhappy with the same Operation not permitted
error. It will, however, record very-high-bitrate 1280x720 video if asked.
Increasing gpu_mem
to 192 or 256 doesn't make 2x2-binned 1640x1232 work, but ffmpeg now has a different complaint:
[video4linux2,v4l2 @ 0x103eec0] Dequeued v4l2 buffer contains 4100096 bytes, but 4040960 were expected. Flags: 0x00002001.
/dev/video0: Invalid data found when processing input
At this point I feel like this is nothing to do with your software anymore and that I might have to take this up with the raspberry pi folks. What do you think? I assume you have not been able to repro?
Hi danieltwagner,
If I follow you, after an upgrade of kernel capturing frame of 1280x720 doesnot work anymore, but it works with lower resolution ?
I made a try with the kernel version you mentionned but not with this resolution.
If ffmeg can capture using the V4L2driver, it may have a problem in the capture code...
Best Regards, Michel.
Sorry, let me clarify: After the kernel upgrade:
gpu_mem
buffer sizes mismatch)gpu_mem
)I do have the same issue regarding the max resolution: v4l2rtspserver can capture up to 1640x922, but fails for 1640x1232
Has anyone a solution? Have the same problem with newest kernel @ raspbian. Can capture up to 1640x922, but fails for 1640x1232, kernel downgrade also dont help.
Just wanted to add a little more to this, as I have had the same issue. I have been watching this issue since I had an identical issue to @danieltwagner (down to the same logs so no point in posting them).
I have been lucky enough to get one of the new RPi Zero 2 W's and ran the same configuration on this (both using a similar image, Ansible to deploy the same code etc), and get the same problem. Including being unable to downgrade the Kernel to restore the higher resolution camera image.
Not sure what else I can add, other than having tried all of the options above and ran into the same issues, esp on the new Pi's as well.
I hit and fixed a similar issue over the weekend also with the Zero 2 W and RPi Camera v2.1. While tracking it down I noticed that the bcm2835_v4l2 kernel module was defaulting to a max_video_width/height of 1280x768 for some reason. Changing these to the max of that module (3280x2464) seemed to resolve it for me.
Checking the current module parameters:
$ tail -n +1 /sys/module/bcm2835_v4l2/parameters/*
Setting more accurate defaults
$ sudo nano /etc/modprobe.d/bcm2835_v4l2.conf
options bcm2835_v4l2 max_video_height=2464
options bcm2835_v4l2 max_video_width=3280
$ sudo update-initramfs
I will continue trying, but following the above returns the error of:
VIDIOC_STREAMON: Invalid argument
when using the command:
/usr/local/bin/v4l2rtspserver -W 1640 -H 1232 -P 8554 /dev/video0
Having double-checked the settings, I can see that the module has had its parameters updated:
I will keep going at trying to see which bit I missed, but it does seem to be very odd. Using a modprobe -r bcm2835_v4l2
removing the .conf
file and then a modprobe bcm2835_v4l2
does bring the feed back, but I am still stuck at 640x480 resolution.
Update:
Found this in the dmesg
log:
Woo! Success! Using the changes @zeretar recommended, I noticed that setting the max_video_height/width a high did not seem to work for the specific video settings I was trying to achieve.
Eventually, I set the options to exactly the resolution I was trying to achieve for the video (1640x1232) and it worked!
$ sudo nano /etc/modprobe.d/bcm2835_v4l2.conf
options bcm2835_v4l2 max_video_height=1232
options bcm2835_v4l2 max_video_width=1640
$ sudo modprobe -r bcm2835_v4l2
$ sudo modprobe bcm2835_v4l2
$ tail -n +1 /sys/module/bcm2835_v4l2/parameters/*
==> /sys/module/bcm2835_v4l2/parameters/debug <==
0
==> /sys/module/bcm2835_v4l2/parameters/max_video_height <==
1232
==> /sys/module/bcm2835_v4l2/parameters/max_video_width <==
1640
==> /sys/module/bcm2835_v4l2/parameters/video_nr <==
-1,-1
Amazing ! Thanks for the fix guys :)
I had a v4l2rtspserver working nicely on my Raspberry Pi Zero W but after I updated it stopped working.
Kernel that worked:
Kernel that doesn't work:
I'm thinking the
totSessionBW
(might be a live 555 thing?) might be a red herring and may have been there before even while things were working. As you can see there is virtually no output despite-vv
. All I did was on a clean Raspberry Pi OS Buster checkout perform anapt upgrade
.The following both work nicely after the upgrade:
The latter is a (poor) replacement for the functionality that I'm missing with v4l2rtspserver not working, as I can access the stream from VLC with
tcp/h264://<ip>:3333