Using raspivid and cvlc together with low framerates and full FOV
I have a Raspberry Pi with an OV5647 camera module which I use to stream video from.
raspivid
takes a command line parameter named --mode, -md
, which offers a couple of modes the camera can be set to use.
Mode Size AR Frame rates FOV Binning
0 automatic
selection
1 1920x1080 16:9 1-30fps Partial None
2 2592x1944 4:3 1-15fps Full None
3 2592x1944 4:3 0.1666-1fps Full None
4 1296x972 4:3 1-42fps Full 2x2
5 1296x730 16:9 1-49fps Full 2x2
6 640x480 4:3 42.1-60fps Full 2x2 plus skip
7 640x480 4:3 60.1-90fps Full 2x2 plus skip
I'd rather have a low framerate and a good image quality instead of high FPS.
For a high quality video I want to stream in Full HD 1920x1080, yet the mode 1
of the camera only gives it a partial FOV which decreases the filmed area a lot, i really need the full FOV.
I would like to choose mode 2
, so that I can stream the downscaled video in Full HD at 15 FPS.
Yet I am forced to use mode 4
, because it gives me a framerate of 25 FPS.
The issue is the following:
raspivid -o -
-t 0
-n
-hf -vf
-g 25
-pf high
-md 4
-fps 25
-b 10000000
| cvlc -vvv
stream:///dev/stdin
--no-audio
--sout '#standard{access=http,mux=ts,dst=:8090}'
:demux=h264
This command works. It sets the camera to mode 4
, uses an fps of 25
and pipes the video into clvc
.
When I set mode to 2
and lower the fps to 15
, then this doesn't work anymore.
For some reason cvlc
appears to be expecting a framerate of 25, logging a lot of warnings along the lines of
[73b02cf8] main mux warning: late buffer for mux input (17958)
[73b02cf8] main mux warning: late buffer for mux input (2025)
[73b02cf8] main mux warning: late buffer for mux input (14107)
[73b02cf8] main mux warning: late buffer for mux input (2890)
[73b02cf8] main mux warning: late buffer for mux input (20115)
There is also an informative message at the beginning claiming that
[73b12410] main decoder debug: using packetizer module "h264"
[73e00568] main input debug: switching to sync mode
[73b088b8] h26x demux debug: using 25.00 fps
So I assume that I'm getting those late buffer
warnings because raspivid is sending to few fps and it's not enough data for the encoder. The video freezes around every 10 seconds, really making it unusable. When it is moving, it is sped up.
How can I tell the h264 encoder that it should work at 15 FPS in-out instead of 25 FPS?
video-streaming frame-rate
add a comment |
I have a Raspberry Pi with an OV5647 camera module which I use to stream video from.
raspivid
takes a command line parameter named --mode, -md
, which offers a couple of modes the camera can be set to use.
Mode Size AR Frame rates FOV Binning
0 automatic
selection
1 1920x1080 16:9 1-30fps Partial None
2 2592x1944 4:3 1-15fps Full None
3 2592x1944 4:3 0.1666-1fps Full None
4 1296x972 4:3 1-42fps Full 2x2
5 1296x730 16:9 1-49fps Full 2x2
6 640x480 4:3 42.1-60fps Full 2x2 plus skip
7 640x480 4:3 60.1-90fps Full 2x2 plus skip
I'd rather have a low framerate and a good image quality instead of high FPS.
For a high quality video I want to stream in Full HD 1920x1080, yet the mode 1
of the camera only gives it a partial FOV which decreases the filmed area a lot, i really need the full FOV.
I would like to choose mode 2
, so that I can stream the downscaled video in Full HD at 15 FPS.
Yet I am forced to use mode 4
, because it gives me a framerate of 25 FPS.
The issue is the following:
raspivid -o -
-t 0
-n
-hf -vf
-g 25
-pf high
-md 4
-fps 25
-b 10000000
| cvlc -vvv
stream:///dev/stdin
--no-audio
--sout '#standard{access=http,mux=ts,dst=:8090}'
:demux=h264
This command works. It sets the camera to mode 4
, uses an fps of 25
and pipes the video into clvc
.
When I set mode to 2
and lower the fps to 15
, then this doesn't work anymore.
For some reason cvlc
appears to be expecting a framerate of 25, logging a lot of warnings along the lines of
[73b02cf8] main mux warning: late buffer for mux input (17958)
[73b02cf8] main mux warning: late buffer for mux input (2025)
[73b02cf8] main mux warning: late buffer for mux input (14107)
[73b02cf8] main mux warning: late buffer for mux input (2890)
[73b02cf8] main mux warning: late buffer for mux input (20115)
There is also an informative message at the beginning claiming that
[73b12410] main decoder debug: using packetizer module "h264"
[73e00568] main input debug: switching to sync mode
[73b088b8] h26x demux debug: using 25.00 fps
So I assume that I'm getting those late buffer
warnings because raspivid is sending to few fps and it's not enough data for the encoder. The video freezes around every 10 seconds, really making it unusable. When it is moving, it is sped up.
How can I tell the h264 encoder that it should work at 15 FPS in-out instead of 25 FPS?
video-streaming frame-rate
add a comment |
I have a Raspberry Pi with an OV5647 camera module which I use to stream video from.
raspivid
takes a command line parameter named --mode, -md
, which offers a couple of modes the camera can be set to use.
Mode Size AR Frame rates FOV Binning
0 automatic
selection
1 1920x1080 16:9 1-30fps Partial None
2 2592x1944 4:3 1-15fps Full None
3 2592x1944 4:3 0.1666-1fps Full None
4 1296x972 4:3 1-42fps Full 2x2
5 1296x730 16:9 1-49fps Full 2x2
6 640x480 4:3 42.1-60fps Full 2x2 plus skip
7 640x480 4:3 60.1-90fps Full 2x2 plus skip
I'd rather have a low framerate and a good image quality instead of high FPS.
For a high quality video I want to stream in Full HD 1920x1080, yet the mode 1
of the camera only gives it a partial FOV which decreases the filmed area a lot, i really need the full FOV.
I would like to choose mode 2
, so that I can stream the downscaled video in Full HD at 15 FPS.
Yet I am forced to use mode 4
, because it gives me a framerate of 25 FPS.
The issue is the following:
raspivid -o -
-t 0
-n
-hf -vf
-g 25
-pf high
-md 4
-fps 25
-b 10000000
| cvlc -vvv
stream:///dev/stdin
--no-audio
--sout '#standard{access=http,mux=ts,dst=:8090}'
:demux=h264
This command works. It sets the camera to mode 4
, uses an fps of 25
and pipes the video into clvc
.
When I set mode to 2
and lower the fps to 15
, then this doesn't work anymore.
For some reason cvlc
appears to be expecting a framerate of 25, logging a lot of warnings along the lines of
[73b02cf8] main mux warning: late buffer for mux input (17958)
[73b02cf8] main mux warning: late buffer for mux input (2025)
[73b02cf8] main mux warning: late buffer for mux input (14107)
[73b02cf8] main mux warning: late buffer for mux input (2890)
[73b02cf8] main mux warning: late buffer for mux input (20115)
There is also an informative message at the beginning claiming that
[73b12410] main decoder debug: using packetizer module "h264"
[73e00568] main input debug: switching to sync mode
[73b088b8] h26x demux debug: using 25.00 fps
So I assume that I'm getting those late buffer
warnings because raspivid is sending to few fps and it's not enough data for the encoder. The video freezes around every 10 seconds, really making it unusable. When it is moving, it is sped up.
How can I tell the h264 encoder that it should work at 15 FPS in-out instead of 25 FPS?
video-streaming frame-rate
I have a Raspberry Pi with an OV5647 camera module which I use to stream video from.
raspivid
takes a command line parameter named --mode, -md
, which offers a couple of modes the camera can be set to use.
Mode Size AR Frame rates FOV Binning
0 automatic
selection
1 1920x1080 16:9 1-30fps Partial None
2 2592x1944 4:3 1-15fps Full None
3 2592x1944 4:3 0.1666-1fps Full None
4 1296x972 4:3 1-42fps Full 2x2
5 1296x730 16:9 1-49fps Full 2x2
6 640x480 4:3 42.1-60fps Full 2x2 plus skip
7 640x480 4:3 60.1-90fps Full 2x2 plus skip
I'd rather have a low framerate and a good image quality instead of high FPS.
For a high quality video I want to stream in Full HD 1920x1080, yet the mode 1
of the camera only gives it a partial FOV which decreases the filmed area a lot, i really need the full FOV.
I would like to choose mode 2
, so that I can stream the downscaled video in Full HD at 15 FPS.
Yet I am forced to use mode 4
, because it gives me a framerate of 25 FPS.
The issue is the following:
raspivid -o -
-t 0
-n
-hf -vf
-g 25
-pf high
-md 4
-fps 25
-b 10000000
| cvlc -vvv
stream:///dev/stdin
--no-audio
--sout '#standard{access=http,mux=ts,dst=:8090}'
:demux=h264
This command works. It sets the camera to mode 4
, uses an fps of 25
and pipes the video into clvc
.
When I set mode to 2
and lower the fps to 15
, then this doesn't work anymore.
For some reason cvlc
appears to be expecting a framerate of 25, logging a lot of warnings along the lines of
[73b02cf8] main mux warning: late buffer for mux input (17958)
[73b02cf8] main mux warning: late buffer for mux input (2025)
[73b02cf8] main mux warning: late buffer for mux input (14107)
[73b02cf8] main mux warning: late buffer for mux input (2890)
[73b02cf8] main mux warning: late buffer for mux input (20115)
There is also an informative message at the beginning claiming that
[73b12410] main decoder debug: using packetizer module "h264"
[73e00568] main input debug: switching to sync mode
[73b088b8] h26x demux debug: using 25.00 fps
So I assume that I'm getting those late buffer
warnings because raspivid is sending to few fps and it's not enough data for the encoder. The video freezes around every 10 seconds, really making it unusable. When it is moving, it is sped up.
How can I tell the h264 encoder that it should work at 15 FPS in-out instead of 25 FPS?
video-streaming frame-rate
video-streaming frame-rate
asked Nov 13 '18 at 11:57
Daniel FDaniel F
6,41444866
6,41444866
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53280550%2fusing-raspivid-and-cvlc-together-with-low-framerates-and-full-fov%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53280550%2fusing-raspivid-and-cvlc-together-with-low-framerates-and-full-fov%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown