使用 avconv 录制流过早停止

使用 avconv 录制流过早停止

我正在尝试在 Ubuntu Linaro 上将 IP 摄像机流简单地录制到我的硬盘上。它工作得很好,持续了 4 秒钟,然后停止。没有错误,播放完美。它似乎是故意这样做的。但是我终生都看不到这个文件大小的设置。它在大约 280k 后停止。如果我降低流大小,它只会记录更长时间,但总是在文件大约为 280k 时停止。如果我使用 -fs 选项减小文件大小并可以强制它更小,但任何超过 280k 的值都会使文件保持在 280k。这是我的输出:

avconv -y -i 'rtsp://192.168.0.100:554/axis-media/media.amp?videocodec=h264&streamprofile=Quality' -benchmark -loglevel debug -c copy test.mpg

生产:

avconv 版本 0.8-4:0.8-1ubuntu1linaro1,版权所有 (c) 2000-2011 Libav 开发人员
  于 2012 年 1 月 26 日 15:06:17 使用 gcc 4.6.1 构建
  配置:--extra-version='4:0.8-1ubuntu1linaro1'--arch=arm--prefix=/usr--libdir=/usr/lib/arm-linux-gnueabi--enable-vdpau--enable-bzlib--enable-libgsm--enable-libschroedinger--enable-libspeex--enable-libtheora--enable-libvorbis--enable-pthreads--enable-zlib--enable-libvpx--enable-runtime-cpudetect--enable-libfreetype--extra-cflags='-marm -fPIC -DPIC'--enable-vaapi--enable-gpl--enable-postproc--enable-swscale--enable-x11grab--enable-libdc1394--shlibdir=/usr/lib/arm-linux-gnueabi/neon/vfp--extra-cflags='-mfpu=neon -fPIC -DPIC'--启用共享--禁用静态
  libavutil 51. 21. 0 / 51. 21. 0
  libavcodec 53. 34. 0 / 53. 34. 0
  libavformat 53. 20. 0 / 53. 20. 0
  libavdevice 53.2.0 / 53.2.0
  libavfilter 2.15.0 / 2.15.0
  libswscale 2. 1. 0 / 2. 1. 0
  libpostproc 52. 0. 0 / 52. 0. 0
[rtsp @ 0x26aa0] SDP:
v=0
o=-1343234035552520 1343234035552520 在 IP4 192.168.0.100
s=媒体演示
e=无
總數:50000
t=0 0
a =控制:rtsp://192.168.0.100:554/axis-media/media.amp?videocodec = h264&streamprofile = Quality
a=范围:npt=0.000000-
m=视频 0 RTP/AVP 96
c=输入 IP4 0.0.0.0
總數:50000
a=帧速率:30.0
a=变换:1,0,0;0,1,0;0,0,1
a =控制:rtsp://192.168.0.100:554/axis-media/media.amp/trackID=1?videocodec=h264&streamprofile=Quality
一个=rtpmap:96 H264/90000
a=fmtp:96 分组模式=1;配置文件级别 ID=420029;sprop 参数集=Z0IAKeKQCgDLYC3AQEBpB4kRUA==,aM48gA==

[rtsp @ 0x26aa0] 视频编解码器设置为:h264
[NULL @ 0x2a800] RTP 打包模式:1
[NULL @ 0x2a800] RTP 配置文件 IDC:42 配置文件 IOP:0 级别:29
[NULL @ 0x2a800] Extradata 设置为 0x2ad80 (大小:29)!hello state=0
[h264 @ 0x2a800] 错误{或}_recognition 单独: 1; 1
[h264 @ 0x2a800] 错误{或}_recognition 合并:1;1
[h264 @ 0x2a800] 不支持的位深度:0
[rtsp @ 0x26aa0] 找到所有信息
[rtsp @ 0x26aa0] 根据比特率估算持续时间,这可能不准确
输入 #0,rtsp,来自‘rtsp://192.168.0.100:554/axis-media/media.amp?videocodec=h264&streamprofile=Quality’:
  元数据:
    标题:媒体介绍
  时长:N/A,开始:0.039989,比特率:N/A
    流 #0.0、22、1/90000:视频:h264(基线)、yuvj420p、1280x800 [PAR 1:1 DAR 8:5]、1/180000、90k tbr、90k tbn、180k tbc
[mpeg @ 0x2fac0] VBV 缓冲区大小未设置,多路复用可能失败
输出 #0,mpeg,到‘test.mpg’:
  元数据:
    标题:媒体介绍
    编码器:Lavf53.20.0
    流 #0.0, 0, 1/90000:视频:[0][0][0][0] / 0x0000,yuvj420p,1280x800 [PAR 1:1 DAR 8:5],1/90000,q=2-31,90k tbn,90k tbc
流映射:
  流 #0:0 -> #0:0 (复制)
按 ctrl-c 停止编码
已接收流 0 (1/1) 的 BYE = 208kB 时间 = 1.36 比特率 = 1252.6kbits/s    
帧= 49 fps= 49 q=-1.0 Lsize= 286kB 时间=1.88 比特率=1245.9kbits/s    
视频:283kB 音频:0kB 全局标头:0kB 多路复用开销 0.902341%

先感谢您。

答案1

尝试运行以下命令:

avconv -rtsp_transport tcp -i

这对我有用。

相关内容