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);
|
||
```
|