我使用 FFMpeg 通过 UDP 将视频流传输到我的桌面。我运行了 wireshark 分析,数据正在到达我的桌面,您可以在下面看到其中一个数据包。
但是,当我在 VLC 上查找网络流时,它似乎无法识别该流。我的命令如下所示:udp://@192.168.2.172:[port]
其中 192.168.2.172 是我的台式电脑的 IP 地址,192.168.2.160 是 ffmpeg 流媒体客户端的地址。这是一个带有空白音频通道的简单 H264 流,所以我不确定为什么 VLC 无法接收它。我使用此命令进行流式传输:raspivid -o - -t 0 -vf -hf -fps 30 -b 45000000 | ffmpeg -re -ar 44100 -ac 2 -acodec pcm_s16le -f s16le -ac 2 -i /dev/zero -f h264 -i - -vcodec copy -acodec aac -ab 128k -g 60 -strict experimental -f h264 udp://192.168.2.172:[port]
以下是它具体功能的具体分解:
raspivid -Take video from raspberry pi camera
-o - -Output to command line
-t 0 -Record indefinitely
-vf -hf -Flip the image twice
-fps 30 -b 45000000 |-Alter the bit rate and pipe the output to the next command.
ffmpeg
-re -Simulate input device
-ar 44100 -create an audio stream...
-ac 2 -with 2 channels...
-acodec pcm_s16le -as a signed 16 bis little endian..
-f s16le -force it to be so
-i /dev/zero -Take the audio from /dev/zero
-f h264 -force the input to be formatted as h264 (ie from raspivid)
-i - -input from the command line
-vcodec copy -copies the h264 codec for minimal processing power needed.
-g 60 -make a keyframe every 60 frames
-strict experimental-adds the audio channel
udp://192.168.2.172:[port] -streams to my desktop PC at port
我认为可能是罪魁祸首是端口绑定,但通过进程黑客 2 检查端口绑定表明 VLC 正在 UDP 和 UDP8 上监听 [端口],如下面的屏幕截图所示。
即使流量通过正确的端口到达 PC 并且 VLC 正在监听该端口,可能的原因有哪些?
更新:VLC 现在可以识别流,但无法播放任何内容,停留在 0:00,并且不提供播放选项。但是,搜索流指示器未处于活动状态。