Comments (7)
There was a bug in the RTP decoding. The padding flag was not handle (first time I have seen it used).
The commit 4f48626 should solve the issue.
from sharprtsp.
I know the artifact you are having. It usually means the keyframe (i-frame) is not getting through to the decoder.
Or it can mean you have network packet loss, and the green garbage is the point the keyframe data is getting lost.
Or it means the H264 receiver does not have a large enough buffer to read in a whole Keyframe.
Also when viewing in VLC it may be making a TCP connection (so masking any packet loss) but perhaps your other viewing software is running in UDP mode which will fail when a packet is lost.
Are you using the simple h264 encoder in sharpRTSP or have you replaced it with a proper H264 encoder?
from sharprtsp.
Thank you for the reply! Did some additional digging with this.
SharpRTSP receives H264 video in TCP mode. Received data is passed along to muxer (jMuxer library to be specific), which handles the video rendering on web browser.
Tested the RTSP stream in TCP mode in SharpRTSP (saving to disk example) and directly with VLC in TCP mode. In VLC video shows without any issues... Further checking the data flow to SharpRTSP with Wireshark revealed that TCP "Conversation completeness" is marked incomplete where the VLC data flow is marked as complete.
from sharprtsp.
Hi,
I'm not sure the "Conversation completeness" is meaningful because it follow if the connection is well close and that seems not to be the problem.
Like RogerHardiman says, the video look like there is missing packet or missing end of packet. You should logs the rtp_sequence_number and check if some are missing.
You can try to set the reception in UDP to see if the problem is the same (maybe in UDP the camera do note split I frame the same way)
Check that in Process_H264_RTP_Packet you do not hit an unsupported agregation type (see the code in H264Payload)
It is hard to find the problem without an access to the camera.
from sharprtsp.
Checked the H264 RTP packet messages and no hits on unsupported aggregation types. Also did test where logging sequence numbers not matching to next one and this too didn't show up any anomalies.
I have created temporary access to the camera's RTSP stream with following URL:
rtsp://test:[email protected]:554/ISAPI/Streaming/channels/701
from sharprtsp.
Wow! Tested with the camera and does seem to do the trick. Padding being used never occured to me here.
I will run more tests with other cameras which produced similar issues, but this commit looks very promising! Will report back with findings.
from sharprtsp.
The commit 4f48626 fixed this issue completely for all devices that previously had issue. Many thanks with this!
from sharprtsp.
Related Issues (20)
- The function AuthenticationBasic make a little mistake. HOT 1
- Bug with library Meziantou.Polyfill HOT 3
- Adding a video display for CameraExample
- Bug In rtp packet extension reading HOT 1
- I am using RTSPClientExample to record H264 videos from stream its working fine for HikVision camera but not in flir camera. When i record stream from flir camera i only see blank screen HOT 2
- Connection Close with bigger frame size and Unity HOT 3
- Simple H264 Encoder doesn't work with hardware decoders? HOT 2
- feed aac raw data to rtspserver HOT 1
- Android camera server HOT 8
- Could not write header for output file #0 (incorrect codec parameters ?): Server returned 400 Bad Request HOT 6
- TestCard MJPG example HOT 1
- AAC RTP packets with multiple AU units per packet HOT 4
- h265payload question HOT 3
- RtspCameraExample issue when client is Hikvision NVR HOT 1
- README File: Spelling Mistakes Correction HOT 2
- repo is behind NuGet package HOT 2
- Update NuGet package please? HOT 2
- netstandard2.1 only? HOT 1
- Rtsp over Http tunneling HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sharprtsp.