Sony Camera Remote API,如何通过VB.net显示/使用实时取景流数据(使用Sony QX1)

问题描述 投票:3回答:3

我正在为VB.net中的Sony摄像机的远程使用编写一个小型软件(我使用QX1,但该型号应该无关紧要)。我可以通过将JSON命令发送到相机来制作图片,也可以使用包装在JSON命令中的“ startLiveview”方法启动实时视图流。作为回报,我获得了下载直播的地址,例如http://192.168.122.1:8080/liveview/liveviewstream(包装在JSON-answer中)。

根据Sony CameraRemote-API参考,这是一个流,其中包含一些标头数据和单个jpeg数据。但这似乎不是MJPEG流。我可以将livestream-link链接到我的浏览器,然后它开始无限下载实时流。我无法使用VLC之类的MJPEG流播放器显示该流。

我的问题是,如何使用VB.net过滤jpeg数据或如何显示实时流。

an older question上已经发布了类似的问题,但没有任何答复。因此,我要再次尝试。

vb.net camera mjpeg sony-camera-api liveview
3个回答
2
投票

这是我的方式,我使用ffserver使视频可流化。这是myconfigffserver配置(server.conf):

Port 8090
BindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 10000

CustomLog -

<Feed feed1.ffm>
 File /tmp/feed1.ffm
 FileMaxSize 1G
 ACL allow 127.0.0.1
</Feed>

<Stream cam.webm>
  Feed feed1.ffm
  Format webm

  VideoCodec libvpx
  VideoSize vga
  VideoFrameRate 25
  AVOptionVideo flags +global_header  

  StartSendOnKey
  NoAudio
  preroll 5
  VideoBitRate 400
</Stream>

<Stream status.html>
  Format status
  ACL allow localhost
  ACL allow 192.168.0.0 192.168.255.255
</Stream>

然后我使用该配置运行ffserver:

ffserver -f server.conf 

然后编码来自Sony liveview的视频,并通过ffserver广播:

ffmpeg -i http://192.168.122.1:8080/liveview/liveviewstream -vcodec libvpx -fflags nobuffer -an http://127.0.0.1:8090/feed1.ffm

此后,您可以从地址流式传输实时取景localhost:8090/cam.webm


0
投票

我尝试使用ffmpeg处理流,并成功将流另存为flv文件。我在终端上使用此代码(我使用UNIX),并成功将文件另存为flv文件:

ffmpeg -i http://192.168.122.1:8080/liveview/liveviewstream -vcodec flv -qscale 1 -an output.flv

也许您可以根据需要对其进行修改或优化。


0
投票

在VLC中,我可以在URL中添加.mjpg来试试。等待几秒钟,应该播放http://192.168.122.1:8080/liveview/liveviewstream.mjpg

© www.soinside.com 2019 - 2024. All rights reserved.