-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
packet follows marked packet with same timestamp #13
Comments
That's a consequence of the missing
Hmm. My understanding from RFC 6184 is that each "access unit" (picture, more or less video frame) should have a different timestamp, and a packet with a MARK indicates that an access unit is complete. (The encoder is allowed to never set a mark, instead just letting the decoder figure that out from the timestamps, but setting MARK means that the decoder knows a frame ended without waiting for the next one to start.) Thus my expectation that the next packet has a different timestamp. You could try commenting out the if statement that returns this error and see if it helps. Is it possible the camera uses interlaced video? Then I think there might actually be two pictures per video frame. Could you post the debug output of a [section moved to #15] |
[moved to #15] |
I'm moving the stuff about ffmpeg errors to #15 because I was getting confused mixing them. Leaving this issue as just the |
Is it possible that it's that the |
From the SPS, no. |
It has the same problem if I pass
it would be good to consider this case for other cameras, thanks |
Hmm, I don't know what's different then, unless your app is just getting RTP packets (via
Yeah, there are certainly various cases on my TODO list to examine, but as far as I can tell none are relevant to your situation. |
Did you get any further in understanding this? I'm also seeing this error on a Reolink RLC-822A camera running firmware
Then for every subsequent IDR frame, the Reolink camera sends:
Apparently Reolink uses an ancient version of live555. live555's current server code seems to set the marker bit incorrectly (search for In a quick look at why other RTSP clients don't seem to care about this:
I'm deciding how to handle this. It'd be helpful to know more about when this happens on VStarCam cameras. |
so @scottlamb I'll test more soon on VStarcam, I just need to close #12 because I'd like to test and modify things to solve this problem but would be nice to have those patches sent so I can focus on this, otherwise I get confused about different branches and etc. Could you send the .txt for those 2 cases so we both work on the same branch? I had some problems these days and I've been doing some things so I have less free time to fix this but I'll certainly investigate this as it's what's missing so I can get images from my camera. I also need to read more about VCL, PPS, SPS |
Ack, I'll look at #12 again tonight. |
...tomorrow morning, sorry. These cameras aren't behaving and I'm too sleepy to make sense of it. |
cargo run --example client mp4 --url rtsp://192.168.1.198:10554/tcp/av0_0 --username admin --password 123456 --initial-timestamp ignore /home/dev/orwell/video_samples/tmp/cam_test.mp4
gives
E20210727 19:24:02.308 main client] Fatal: [172.17.0.2:50402(me)->192.168.1.198:10554@2021-07-27T19:23:55, 119614@2021-07-27T19:24:02, channel=0, stream=0, ssrc=0000173a] packet follows marked packet with same timestamp
from here
retina/src/codec/h264.rs
Line 181 in b1db9a9
I don't know why
--initial-timestamp ignore
is needed but without it I getretina/src/client/mod.rs
Line 705 in b1db9a9
Anyways, the
packet follows marked packet with same timestamp
error occurs after around 30 calls topush
, like this:as you see, a video frame is generated and then we get the error. It always happens after the first video frame is emitted.
The strange thing is that on my app, the retina client does not produce this error. I'm trying to figure out what is different.
[section moved to #15]
Do you have any idea on the error on the mp4 example, and on my client?
The text was updated successfully, but these errors were encountered: