38 lines
1.3 KiB
Markdown
38 lines
1.3 KiB
Markdown
|
---
|
|||
|
title: "📷 Тестовый источник видео Gstreamer"
|
|||
|
date: 2024-06-05T19:09:57+03:00
|
|||
|
draft: false
|
|||
|
tags: [tips, linux, video, development]
|
|||
|
---
|
|||
|
|
|||
|
Для отладочных целей (или нет) в **GStreamer** предусмотрен источник видео `videotestsrc`.
|
|||
|
|
|||
|
![](https://cdn.a2s.su/blog/2024/videotestsrc.png)
|
|||
|
|
|||
|
Что-бы его запустить, досточно выполнить следующую команду.
|
|||
|
|
|||
|
```shell
|
|||
|
gst-launch-1.0 -v videotestsrc ! xvimagesink
|
|||
|
```
|
|||
|
|
|||
|
Можно задать разрешение изображения, например 320 на 240 пикселей,
|
|||
|
или 1280 на 720 пикселей.
|
|||
|
|
|||
|
```shell
|
|||
|
# 320 на 240 пикселей
|
|||
|
gst-launch-1.0 -v videotestsrc ! video/x-raw,width=320,height=240 ! xvimagesink
|
|||
|
|
|||
|
# 1280 на 720 пикселей
|
|||
|
gst-launch-1.0 -v videotestsrc ! video/x-raw,width=1280,height=720 ! xvimagesink
|
|||
|
```
|
|||
|
|
|||
|
Что-бы использовать поток в коде, нужно заменить параметр `xvimagesink` на `appsink`.
|
|||
|
|
|||
|
```c++
|
|||
|
std::string source = "videotestsrc ! video/x-raw,width=320,height=240 ! appsink";
|
|||
|
|
|||
|
cv::VideoCapture capture = cv::VideoCapture(source);
|
|||
|
// or
|
|||
|
cv::VideoCapture capture = cv::VideoCapture(source, cv::CAP_GSTREAMER);
|
|||
|
```
|