3

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

根据 Sony CameraRemote-API-reference,这是一个包含一些标头数据和单个 jpeg 数据的流。但它似乎不是 MJPEG 流。我可以通过我的浏览器的直播链接,它开始无限下载直播。我无法使用像 VLC 这样的 MJPEG 流播放器来显示流。

我的问题是,如何使用 VB.net 过滤掉 jpeg 数据,或者如何显示直播。

一个类似的问题已经发布在一个较旧的问题上,但没有任何回复。因此,我再次尝试。

4

4 回答 4

2

这是我的方式,我使用 ffserver 来制作视频流。这是 ffserver 配置 (server.conf) 的 myconfig:

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

于 2015-07-03T01:28:53.153 回答
1

(我在终端中使用带有 linux 的笔记本电脑)

  1. 安装 GSTREAMER:

sudo apt-get install libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1。 0-工具 gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio

  1. 修复相机的参数以通过智能手机启用控制,例如我网络上相机的ssd是DIRECT-dpC3:DSC-RX100M5A

  2. 使用 Wifi 将您的计算机直接连接到您的相机

  3. 使用以下命令告诉您的相机开始 liveView:

    curl http://192.168.122.1:10000/sony/camera -X POST -H 'Content- type:application/json' --data '{ "method": "startLiveview", "params": [], "id ": 1, "版本": "1.0"}'

  4. 请注意,相机的响应是一个 URL:我的是:

    {"id":1,"result":["http://192.168.122.1:60152/liveviewstream?%211234%21%2a%3a%2a%3aimage%2fjpeg%3a%2a%21%21%21% 21%21"]}

  5. 告诉 gstreamer 使用这个 URL:

    gst-launch-1.0 汤httpsrc location=http://192.168.122.1:60152/liveviewstream?%211234%21%2a%3a%2a%3aimage%2fjpeg%3a%2a%21%21%21%21%21 !JPEG格式!自动视频接收器

7; 享受 ;-)

于 2020-08-09T17:35:43.707 回答
0

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

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

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

于 2015-07-02T02:44:57.993 回答
0

在 VLC 中为我添加 .mjpg 到 URL 试试这个。等待秒,应该播放http://192.168.122.1:8080/liveview/liveviewstream.mjpg

于 2020-01-07T19:27:33.280 回答