首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ffmpeg从运行linux的Pocketbeagle通过UDP直播网络摄像头视频,缺少什么?

使用ffmpeg从运行linux的Pocketbeagle通过UDP直播网络摄像头视频,缺少什么?
EN

Stack Overflow用户
提问于 2020-10-08 06:07:52
回答 1查看 2.6K关注 0票数 1

我已经阅读了很多关于ffmpeg和网络摄像头直播的问题,并且已经非常接近了,但我只是遗漏了一些小东西。我有一台运行Debian的Pocketbeagle (袖珍linux电脑),通过USB连接了一个摄像头。pocketbeagle通过USB以太网连接到我的Windows电脑。pocketbeagle的IP为192.168.7.2,我的计算机IP为192.168.7.1。我尝试通过UDP流式传输到VLC,但无论我如何尝试,都无法看到VLC上的视频源

我正在运行的命令如下:

代码语言:javascript
复制
ffmpeg -f v4l2 -input_format mjpeg -i /dev/video0 -framerate 10 -video_size 1280x720 -f mpegts udp:192.168.7.1:15151

这导致了这个输出,它看起来实际上是随着Lsize和时间的增加而流式传输一些东西,同时它运行直到我杀死它:

代码语言:javascript
复制
ffmpeg version 4.1.6-1~deb10u1 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 8 (Debian 8.3.0-6)
configuration: --prefix=/usr --extra-version='1~deb10u1' --toolchain=hardened --libdir=/usr/lib/arm- 
linux-gnueabihf --incdir=/usr/include/arm-linux-gnueabihf --arch=arm --enable-gpl --disable-stripping 
--enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa -- 
enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio - 
-enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi - 
-enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable- 
libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable- 
librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh 
 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx -- 
enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq 
 --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable- 
libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 
 --enable-shared
   libavutil      56. 22.100 / 56. 22.100
   libavcodec     58. 35.100 / 58. 35.100
   libavformat    58. 20.100 / 58. 20.100
   libavdevice    58.  5.100 / 58.  5.100
   libavfilter     7. 40.101 /  7. 40.101
   libavresample   4.  0.  0 /  4.  0.  0
   libswscale      5.  3.100 /  5.  3.100
   libswresample   3.  3.100 /  3.  3.100
   libpostproc    55.  3.100 / 55.  3.100
 Input #0, video4linux2,v4l2, from '/dev/video0':
   Duration: N/A, start: 2998.098197, bitrate: N/A
     Stream #0:0: Video: mjpeg, yuvj422p(pc, bt470bg/unknown/unknown), 1280x720, 30 fps, 30 tbr,                 
 1000k tbn, 1000k tbc
 Stream mapping:
   Stream #0:0 -> #0:0 (mjpeg (native) -> mpeg2video (native))
 Press [q] to stop, [?] for help
 [swscaler @ 0x1bb2d40] deprecated pixel format used, make sure you did set range correctly
 Output #0, mpegts, to 'udp:192.168.7.1:15151':
   Metadata:
     encoder         : Lavf58.20.100
     Stream #0:0: Video: mpeg2video (4:2:2), yuv422p, 1280x720, q=2-31, 200 kb/s, 30 fps, 90k tbn, 30 
 tbc
     Metadata:
       encoder         : Lavc58.35.100 mpeg2video
     Side data:
       cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1
 frame=   17 fps=2.8 q=31.0 Lsize=     654kB time=00:00:02.10 bitrate=2552.5kbits/s speed=0.343x    x
 video:605kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 8.214545%
 Exiting normally, received signal 2.

最重要的是,VLC识别到某种类型的流已经启动,并非常缓慢地递增时间(比如每30s-1M递增1秒)。然而,我没有看到任何视频通过。

如果能帮上忙,我们将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2020-12-17 02:07:38

经过多次实验,我得到了一个使用ffmpeg的实况流,但是处理器不足以处理它,视频提要即使在144p的时候也是以.25x的速度输出的。如果有人感兴趣,这里是我使用的命令:

代码语言:javascript
复制
ffmpeg -f v4l2 -input_format mjpeg -i /dev/video0 -r 10 -b:v 2000k -s 256x144 -c:v libx264 -f mpegts -flush_packets 0 udp://192.168.7.1:11795?pkt_size=1024
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64252983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档