通过 node.js 流式传输 IP 摄像机

问题描述

我正在尝试让 IP 摄像头流在浏览器中运行,并最终在手机中运行。但是,我在通过 ffmpeg 访问 RTSP 流时遇到了问题。 我正在运行下面的命令,替换正确的信息。我把摄像头改成静态IP地址,把IP地址复制到STATIC_IP。

/opt/homebrew/bin/ffmpeg -i rtsp://USER:PASS@STATIC_IP:554/stream1 -fflags flush_packets -max_delay 5 -flags -global_header -hls_time 5 -hls_list_size 3 -vcodec copy -y .\videos\ipcam\index.m3u8

构建正在记录以下内容

ffmpeg version 4.4 copyright (c) 2000-2021 the FFmpeg developers
  built with Apple clang version 12.0.5 (clang-1205.0.22.9)
  configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/4.4_2 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-avresample --enable-videotoolBox
  libavutil      56. 70.100 / 56. 70.100
  libavcodec     58.134.100 / 58.134.100
  libavformat    58. 76.100 / 58. 76.100
  libavdevice    58. 13.100 / 58. 13.100
  libavfilter     7.110.100 /  7.110.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  9.100 /  5.  9.100
  libswresample   3.  9.100 /  3.  9.100
  libpostproc    55.  9.100 / 55.  9.100
[rtsp @ 0x11b008200] CSeq 2 expected,1 received.
rtsp://USER:PASS@STATIC_IP:554/stream1: Server returned 400 Bad Request

我不知道 CSeq 2 expected 1 received line 指的是什么,所以我在诊断问题时遇到了麻烦。任何帮助表示赞赏。

解决方法

以下 SO 帖子建议使用 rtsp_transport tcp

ffmpeg -rtsp_transport tcp -i rtsp://...

SO Post