WARNING: erroneous pipeline: no property "duration" in element "filesink0"
时间: 2023-12-01 13:02:18 浏览: 125
很抱歉,我之前的回答有误。在GStreamer中,`filesink`元素没有`duration`属性。如果您需要设置录制视频的时间,请使用`timeout`属性。
以下是一个使用GStreamer录制十秒H264格式视频的命令行示例:
```
gst-launch-1.0 -e v4l2src device=/dev/video0 ! video/x-raw,width=640,height=480 ! x264enc tune=zerolatency speed-preset=superfast ! h264parse ! mp4mux ! filesink location=output.mp4 async=false qos=false timeout=10000
```
这个命令与之前的命令类似,但是使用`timeout`属性设置了录制视频的时间,单位为毫秒。这里设置为10000毫秒,即10秒。当达到指定的录制时间时,命令会自动停止录制并保存视频文件。
您可以根据需要更改命令行选项,例如更改视频的分辨率或帧速率。请注意,您需要安装GStreamer及其插件才能运行此命令。另外,请确保摄像头设备在/dev/video0路径上,如果不是,请更改命令中的device选项。
相关问题
WARNING: erroneous pipeline: no property "timeout" in element "filesink0"
非常抱歉,我的回答还是有误。在GStreamer中,`filesink`元素也没有`timeout`属性。要设置视频录制的时间限制,需要使用其他方式。
以下是一个使用GStreamer录制十秒H264格式视频的命令行示例,使用`timeout`命令和`pkill`命令实现自动停止录制:
```
timeout 10s gst-launch-1.0 -e v4l2src device=/dev/video0 ! video/x-raw,width=640,height=480 ! x264enc tune=zerolatency speed-preset=superfast ! h264parse ! mp4mux ! filesink location=output.mp4 & sleep 1 && pkill -f "gst-launch-1.0"
```
这个命令使用`timeout`命令来限制GStreamer录制视频的时间为10秒,如果录制超时,`timeout`命令将自动终止GStreamer进程。`pkill`命令用于在录制完成后手动停止GStreamer进程。
您可以根据需要更改命令行选项,例如更改视频的分辨率或帧速率。请注意,您需要安装GStreamer及其插件才能运行此命令。另外,请确保摄像头设备在/dev/video0路径上,如果不是,请更改命令中的device选项。
WARNING: erroneous pipeline: no property "max-size-time" in element "filesink0"
这个警告表明 `filesink` 元素不存在 `max-size-time` 属性。因此,在您的命令中,`max-size-time` 参数应该放在 `mp4mux` 元素上而不是 `filesink` 元素上。
以下是一个修正后的命令,用于捕获摄像头视频并将其保存为 `MP4` 文件,时长为十秒:
```
gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw, width=640, height=480, framerate=30/1 ! videoconvert ! x264enc ! mp4mux max-size-time=10000000000 ! filesink location=test.mp4 async=false sync=false
```
在这个命令中,`v4l2src` 元素捕获 `/dev/video0` 设备的视频流,`video/x-raw` 指定视频流的格式为原始格式,`width` 和 `height` 指定视频的宽度和高度,`framerate` 指定视频的帧率。接下来,`videoconvert` 元素将视频流转换为 `x264enc` 元素所需的格式。`x264enc` 元素将视频编码为 `H.264` 格式。最后,`mp4mux` 元素将视频流封装为 `MP4` 格式,并使用 `filesink` 元素将视频保存到文件中。
`max-size-time` 参数指定了输出文件的最大时长(以纳秒为单位)。在本例中,它被设置为十秒。`async` 和 `sync` 参数分别指定异步和同步处理模式。
您可以根据需要修改命令中的参数,例如更改视频的分辨率、帧率等。
阅读全文