- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 ffmpeg 在 rtsp 流上流式传输树莓派 PI cam。
在我将此命令与 OpenCV 结合使用之前:
ffmpeg -re -c:v copy -preset ultrafast -tune zerolatency -rtsp_transport udp -f rtsp rtsp_server
它运行良好,但 CPU 使用率很高。
ffmpeg -input_format h264 -i /dev/video0 -c:v copy -an -rtsp_transport udp -f rtsp rtsp_server
我没有 CPU 使用率,但在互联网上发送的数据量很高。
Video
ID : 0
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4
Format settings : CABAC / 1 Ref Frames
Format settings, CABAC : Yes
Format settings, Reference frames : 1 frame
Format settings, GOP : M=1, N=60
Codec ID : H264
Duration : 17 s 783 ms
Bit rate : 1 174 kb/s
Width : 640 pixels
Height : 480 pixels
Display aspect ratio : 4:3
Frame rate : 60.000 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.064
Stream size : 2.49 MiB (99%)
我尝试使用以下命令降低帧速率和比特率:
ffmpeg -input_format h264 -i /dev/video0 -b:v 30k -framerate 30 -c:v copy -an video.avi
但它不起作用。
ffmpeg -input_format h264 -i /dev/video0 -b:v 30k -framerate 30 -c:v copy -an video.avi
ffmpeg version a4e1dd6 Copyright (c) 2000-2021 the FFmpeg developers
built with gcc 10 (Raspbian 10.2.1-6+rpi1)
configuration: --extra-cflags='-I/usr/local/include -I/usr/include' --extra-ldflags='-L/usr/local/lib -L/usr/lib' --extra-libs='-lpthread -lm -latomic' --arch=armel --enable-gmp --enable-gpl --enable-libaom --enable-libass --enable-libdav1d --enable-libdrm --enable-libfdk-aac --enable-libfreetype --enable-libkvazaar --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libssh --enable-libvorbis --enable-libvpx --enable-libzimg --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-mmal --enable-nonfree --enable-omx --enable-omx-rpi --enable-version3 --target-os=linux --enable-pthreads --enable-openssl --enable-hardcoded-tables
libavutil 56. 70.100 / 56. 70.100
libavcodec 58.134.100 / 58.134.100
libavformat 58. 76.100 / 58. 76.100
libavdevice 58. 13.100 / 58. 13.100
libavfilter 7.110.100 / 7.110.100
libswscale 5. 9.100 / 5. 9.100
libswresample 3. 9.100 / 3. 9.100
libpostproc 55. 9.100 / 55. 9.100
Input #0, video4linux2,v4l2, from '/dev/video0':
Duration: N/A, start: 14575.131904, bitrate: N/A
Stream #0:0: Video: h264 (High), yuv420p(progressive), 640x480, 30 fps, 30 tbr, 1000k tbn, 2000k tbc
Output #0, avi, to 'video.avi':
Metadata:
ISFT : Lavf58.76.100
Stream #0:0: Video: h264 (High) (H264 / 0x34363248), yuv420p(progressive), 640x480, q=2-31, 30 kb/s, 30 fps, 30 tbr, 60 tbn, 60 tbc
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
[avi @ 0x3044850] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
frame= 1 fps=0.0 q=-1.0 size= 28kB time=00:00:00.01 bitrate=13675.9kbi[avi @ 0x3044850] Non-monotonous DTS in output stream 0:0; previous: 0, current: 0; changing to 1. This may result in incorrect timestamps in the output file.
frame= 23 fps=0.0 q=-1.0 size= 202kB time=00:00:00.71 bitrate=2305.9kbitframe= 38 fps= 37 q=-1.0 size= 256kB time=00:00:01.21 bitrate=1723.7kbitframe= 53 fps= 35 q=-1.0 size= 256kB time=00:00:01.71 bitrate=1221.6kbitframe= 69 fps= 34 q=-1.0 size= 512kB time=00:00:02.25 bitrate=1864.1kbitframe= 84 fps= 33 q=-1.0 size= 512kB time=00:00:02.75 bitrate=1525.2kbitframe= 99 fps= 33 q=-1.0 size= 768kB time=00:00:03.25 bitrate=1935.8kbitframe= 114 fps= 32 q=-1.0 size= 768kB time=00:00:03.75 bitrate=1677.7kbitframe= 129 fps= 32 q=-1.0 size= 1024kB time=00:00:04.25 bitrate=1973.8kbitframe= 144 fps= 32 q=-1.0 size= 1024kB time=00:00:04.75 bitrate=1766.0kbitframe= 159 fps= 31 q=-1.0 size= 1280kB time=00:00:05.25 bitrate=1997.3kbitframe= 175 fps= 31 q=-1.0 size= 1280kB time=00:00:05.78 bitrate=1813.1kbitframe= 190 fps= 31 q=-1.0 size= 1536kB time=00:00:06.28 bitrate=2002.6kbitframe= 205 fps= 31 q=-1.0 size= 1536kB time=00:00:06.78 bitrate=1855.0kbitframe= 220 fps= 31 q=-1.0 size= 1792kB time=00:00:07.28 bitrate=2015.6kbitframe= 235 fps= 31 q=-1.0 size= 1792kB time=00:00:07.78 bitrate=1886.1kbitframe= 251 fps= 31 q=-1.0 size= 2048kB time=00:00:08.31 bitrate=2017.3kbitframe= 266 fps= 31 q=-1.0 size= 2048kB time=00:00:08.81 bitrate=1902.9kbitframe= 279 fps= 31 q=-1.0 Lsize= 2315kB time=00:00:09.25 bitrate=2050.6kbits/s speed=1.02x
video:2297kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.816921%
有人可以帮我减少输出大小吗?
最佳答案
解决了设置 v4l2 的最大比特率的问题:
v4l2-ctl --set-ctrl video_bitrate=value_you_want
关于ffmpeg - 使用 ffmpeg 降低帧率和比特率不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71018396/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!