Skip to content
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

Save each frame into a still image instead of h264 file #11

Closed
yongwang opened this issue Dec 5, 2016 · 3 comments
Closed

Save each frame into a still image instead of h264 file #11

yongwang opened this issue Dec 5, 2016 · 3 comments

Comments

@yongwang
Copy link

yongwang commented Dec 5, 2016

Hi Nicolas,

Thanks for sharing this useful library!

A quick question regarding using this library, could it save each frame into a still image instead of .264 file?

Process_RTP_Frame() writes file stream as NAL, How can I extra the image from the raw bytes?

Thanks and regards,
Yong

@RogerHardiman
Copy link
Collaborator

Hi Yong

There are two parts to video streaming
Part 1 - carrying data over a network. This is what SharpRTSP does.

Part 2 - converting data (the NALs) back into still images. This is a job for a H264 decoder (a H264 decompression library) and is not something that SharpRTSP does.

There are several ways to convert NALs to still images.
Some people use classes provided by the operating system that use the hardware H264 decoders that are part of modern computer chipsets.
Some people use ffmpeg (a C library which is called as unmanaged code) to convert NALs to still images.

There is a C# port of part of ffmpeg called CSCodec project on github https://github.com/soywiz/cscodec but I don't know how good it is.

Anyway for your project you need to link to use SharpRTSP to get the NALs but then need to use something else to convert NALs into still images.

@RogerHardiman
Copy link
Collaborator

Hi Yong
In my last post I forgot to say this....

The reason RTSP just carries 'data' and does not know what to do with it is because RTSP can carry lots of different video formats (MPEG1, MPEG2, H263, MPEG4, H264, VP8, MJPEG etc) and lots of different audio formats (u-law, a-law, G711, G723, Speex, AAC, AMR, MP3 etc).

So RTSP just carries blocks of data. RTSP usually knows what type of data it is but RTSP does not know what to do with the data.

It is the application that has to take the 'data' from RTSP and convert the data into images and into sounds and then show the images and play the sounds

@yongwang
Copy link
Author

Hi Roger,

Thanks for your detail answer, I have tried to use ffmpeg to convert a rtsp stream into frames of still images and it worked out OK!

regards,
Yong

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants