使用 VLC 录制和复制网络摄像头流
Recording and Duplicating a webcam stream with VLC
我正在尝试录制网络摄像头、保存它并将其流式传输到本地网络。
问题是,我想用不同的压缩来做到这一点:
本地网络的流应该只有 <400kbit/s,但是另一个存储到本地文件的流应该是未压缩的或最多 10 Mbit/s
所以我尝试了两种方法来解决这个问题:
首先我玩了一下 VLC Gui。录制网络摄像头非常容易,然后将其转码并保存到文件 or/and 将其流式传输到互联网。命令行如下所示:
vlc v4l2:///dev/video0 :v4l2-standard= :live-caching=300 :sout="#transcode{vcodec=WMV2,vb=380,fps=1,scale=Automatisch,acodec=none}:duplicate{dst=file{dst=stream.asf,no-overwrite},dst=http{dst=:8080/stream.wmv}}" :sout-keep
但我遇到了一个问题,即 Internet 流和文件都被压缩了。所以我将 "duplicate" 和 "transcode" 的顺序更改为:
vlc v4l2:///dev/video0 :v4l2-standard= :live-caching=300 :sout="#duplicate{dst=file{dst=stream.asf,no-overwrite}, dst="transcode{vcodec=WMV2,vb=380,fps=1,scale=Automatisch,acodec=none}:http{dst=:8080/stream.wmv}"}" :sout-keep
我的想法:现在我应该有一个压缩的互联网流和原始文件。但它不会将其流式传输到互联网。
所以我尝试了另一种方法:我想将原始流传输到端口 8080,然后使用另外两个 VLC 实例生成压缩网络流到端口 8008 和原始文件。但是我无法流式传输....
所以,如果有人有其他想法或提示我的问题出在哪里,我将非常感激。
对不起我的英语不好。
祝你有个愉快的一天。
您双引号 :sout
。如果您打算在值中使用引号 "
,则使用撇号 '
将整个参数括起来,例如:
:sout='#duplicate{dst=file{...}, dst="transcode{...}:http{dst=:8080/stream.wmv}"}'
如果您在命令末尾添加 -v
(详细输出),您也会看到一些其他问题,例如 no-overwrite
未被识别。另外,scale=Automatisch
应该是 scale=auto
.
请注意,我只检查了语法,并未检查您的编码参数。
我正在尝试录制网络摄像头、保存它并将其流式传输到本地网络。
问题是,我想用不同的压缩来做到这一点:
本地网络的流应该只有 <400kbit/s,但是另一个存储到本地文件的流应该是未压缩的或最多 10 Mbit/s
所以我尝试了两种方法来解决这个问题:
首先我玩了一下 VLC Gui。录制网络摄像头非常容易,然后将其转码并保存到文件 or/and 将其流式传输到互联网。命令行如下所示:
vlc v4l2:///dev/video0 :v4l2-standard= :live-caching=300 :sout="#transcode{vcodec=WMV2,vb=380,fps=1,scale=Automatisch,acodec=none}:duplicate{dst=file{dst=stream.asf,no-overwrite},dst=http{dst=:8080/stream.wmv}}" :sout-keep
但我遇到了一个问题,即 Internet 流和文件都被压缩了。所以我将 "duplicate" 和 "transcode" 的顺序更改为:
vlc v4l2:///dev/video0 :v4l2-standard= :live-caching=300 :sout="#duplicate{dst=file{dst=stream.asf,no-overwrite}, dst="transcode{vcodec=WMV2,vb=380,fps=1,scale=Automatisch,acodec=none}:http{dst=:8080/stream.wmv}"}" :sout-keep
我的想法:现在我应该有一个压缩的互联网流和原始文件。但它不会将其流式传输到互联网。
所以我尝试了另一种方法:我想将原始流传输到端口 8080,然后使用另外两个 VLC 实例生成压缩网络流到端口 8008 和原始文件。但是我无法流式传输....
所以,如果有人有其他想法或提示我的问题出在哪里,我将非常感激。 对不起我的英语不好。 祝你有个愉快的一天。
您双引号 :sout
。如果您打算在值中使用引号 "
,则使用撇号 '
将整个参数括起来,例如:
:sout='#duplicate{dst=file{...}, dst="transcode{...}:http{dst=:8080/stream.wmv}"}'
如果您在命令末尾添加 -v
(详细输出),您也会看到一些其他问题,例如 no-overwrite
未被识别。另外,scale=Automatisch
应该是 scale=auto
.
请注意,我只检查了语法,并未检查您的编码参数。