我下载FFmpeg windows binary并成功使用ffplay.exe获取媒体文件和一些支持RTSP的Ip相机(例如Acti)。
我在Bosch(h264)NDC 265 P相机上尝试ffplay它不起作用。当我使用调试选项启动ffplay时,我会得到以下内容
D:\Test>ffplay -debug 1 rtsp:/XXXXXXXXXX/video
FFplay version SVN-r26400, Copyright (c) 2003-2011 the FFmpeg developers
built on Jan 18 2011 04:09:28 with gcc 4.4.2
configuration: --enable-gpl --enable-version3 --enable-libgsm --enable-libvorb
is --enable-libtheora --enable-libspeex --enable-libmp3lame --enable-libopenjpeg
--enable-libschroedinger --enable-libopencore_amrwb --enable-libopencore_amrnb
--enable-libvpx --disable-decoder=libvpx --arch=x86 --enable-runtime-cpudetect -
-enable-libxvid --enable-libx264 --enable-librtmp --extra-libs='-lrtmp -lpolarss
l -lws2_32 -lwinmm' --target-os=mingw32 --enable-avisynth --enable-w32threads --
cross-prefix=i686-mingw32- --cc='ccache i686-mingw32-gcc' --enable-memalign-hack
--enable-shared --disable-static
libavutil 50.36. 0 / 50.36. 0
libavcore 0.16. 1 / 0.16. 1
libavcodec 52.108. 0 / 52.108. 0
libavformat 52.93. 0 / 52.93. 0
libavdevice 52. 2. 3 / 52. 2. 3
libavfilter 1.74. 0 / 1.74. 0
libswscale 0.12. 0 / 0.12. 0
[rtsp @ 006db540] SDP:
v=0
o=- 0 0 IN IP4 XXXXXXXXXX
s=LIVE VIEW
t=0 0
c=IN IP4 0.0.0.0
m=video 0 RTP/AVP 35
a=rtpmap:35 H264/90000
a=control:rtsp://XXXXXXXXXX/video
a=recvonly
a=fmtp:35 packetization-mode=1;profile-level-id=4d0028;sprop-parameter-sets=Z00A
KI2NKAoAt2AgEA==,aO48gA==
[rtsp @ 006db540] video codec set to: (null)
[rtsp @ 006db540] hello state=0
[rtsp @ 006db540] Probe buffer size limit 5000000 reached
[rtsp @ 006db540] Estimating duration from bitrate, this may be inaccurate
Input #0, rtsp, from 'rtsp:/XXXXXXXXXX/video':
Metadata:
title : LIVE VIEW
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0.0, 4035, 1/90000: Video: [0][0][0][0] / 0x0000, 90k tbr, 90k tbn,
90k tbc
rtsp:/XXXXXXXXXX/video: c1o3u0l1d7 3n2o1t5 2o.p2e1n Ac-oVd:e c s0
.000 s:0.0 aq= 0KB vq= 0KB sq= 0B f=0/0
我可以用VLC播放器播放Bosch IP摄像头......但不能用FFmpeg ......
所以
答案 0 :(得分:1)
在尝试使用ffplay(版本0.10)播放时,与Bosch DINION HD相机的H.264流有同样的问题。
问题的根本原因在于SDP中的错误有效内容类型:
m=video 0 RTP/AVP 35
a=rtpmap:35 H264/90000
通常情况下,博世设备会在pt
值35而非正常动态范围内发送数据。
只需删除h264 / mpeg4和h263(de)payloader中的pt
即可获得博世支持。
此问题还有几个相关问题:
另外一套博世设备也是如此:博世DINION HD 720p IVA,博世DINION NBN-498-P IVA,博世NTC-255-PI,博世VIP X1600 XFM4。