我正在ffmpeg的两个实例之间查看流视频(可能带有udp),而不会由于编码而造成任何潜在的质量损失。我不太担心带宽,我只是希望流是实时的,并且具有与输入相同的质量。到目前为止,我尝试过的两种主要方法是使用huffyuv
和编码rawvideo
。我已经能够使用这两个选项进行编码,并将其写入可以正常播放的文件,但是我无法创建可以通过其中任何一个打开的流。我还看到它x264
具有无损编码选项,但是由于许可限制,这对我来说不是一个好选择。
这是我成功写入文件的命令行:
ffmpeg -i /dev/video0 -c:v huffyuv -f avi out.avi
ffmpeg -i /dev/video0 -c:v rawvideo -f nut out.nut
这是我不太成功的流式传输尝试:
ffmpeg -i /dev/video0 -c:v huffyuv -f udp://239.255.76.67:1130?ttl=1
ffmpeg -i /dev/video0 -c:v rawvideo -f nut udp://239.255.76.67:1130?ttl=1
然后尝试流式传输,我尝试让接收实例自动检测并强制流式传输格式:
ffplay udp://239.255.76.67:1130
ffplay -f avi -vcodec huffyuv udp://239.255.76.67:1130
ffplay -f nut -vcodec rawvideo udp://239.255.76.67:1130
对于所有这些组合,我得到相同的错误:
udp://239.255.76.67:1130: Invalid data found when processing input
如果您在启动服务实例之前先启动接收实例,则可以使用
ffmpeg -i /dev/video0 -c:v huffyuv -f avi udp://239.255.76.67:1130?ttl=1
或用螺母,flv,matroska代替avi。您将无法停止并重新启动接收实例。
如果您需要在接收实例之前进行延迟启动或重新启动,则必须使用mpegts之类的流格式。MPEG-TS不支持huffyuv或rawvideo。然后,您将无法使用H.264 / 5。
接收实例很简单 ffplay udp://239.255.76.67:1130
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句