[Libav-user] Setting the number of B-frames and P-frames
Matteo Foglio
foglio.matteo at gmail.com
Thu May 27 17:19:22 EEST 2021
Hello folks,
I am streaming from an rtsp source. It looks like half of the frames
received are key frames. Is there a way to reduce this percentage and have
a higher number of P-frames and B-frames? If possible, I would like to
increase the number of P-frames (not the one of B-frames).
I am using `pyav` which is a Python wrapper for `libav` (`ffmpeg`)
Code:
*import av*
*container = av.open(*
* url, 'r',*
* options={*
* 'rtsp_transport': 'tcp',*
* 'stimeout': '5000000',*
* 'max_delay': '5000000',*
* }*
*)*
*stream = container.streams.video[0]*
*codec_context = stream.codec_context*
*codec_context.export_mvs = True*
*codec_context.gop_size = 25 *
*for packet in self.container.demux(video=0):*
* for video_frame in packet.decode():*
* print(video_frame.is_key_frame)*
Output:
*True*
*False*
*True*
*False*
*...*
And if I print the picture type I see:
*I*
*P*
*I*
*P*
*...*
It seems that B-frames are disabled: `codec_context.has_b_frames` is `False`
Note 1: I can't edit the camera source. I don't know if that's necessary
but I wanted to mention it. I can just edit the code used to stream the
video.
Note 2: the same solution should apply to `pyav`, `libavi` and `ffmpeg`.
Thank you!
Matteo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://ffmpeg.org/pipermail/libav-user/attachments/20210527/717b1291/attachment.htm>
More information about the Libav-user
mailing list