LINUX.ORG.RU

Сообщения AshYorik

 

Парсинг параметров из txt файла C++

Доброго дня всем. Можете пожалуйста подсказать, помочь, направить на путь истинный так сказать. Столкнулся с проблемой, вроде бы как в весьма тривиальной задачке. Это всё разумеется из-за отсутствия знаний, которые стремлюсь улучшить. В общем, есть файл “file.txt”, в нем примерно следующего типа строки: Nik = CK Eth = 1500

И мне нужно найти нужную мне строку и оттуда захватить значение (например, на что равен Nik).

На текущий момент я реализовал через ifstream открытие файла, при помощи getline в цикле я из файла в string закидываю. Как вариант решение предполагал следующее: string через push_back закинуть в vector, потом в векторе каждую строку разделить до “=” и проверять на совпадение (через std::find???) и если совпадение есть, то захватить то, что идёт после “=” (как именно??). Правильное ли это решение? Можете помочь как лучше всего это сделать?

 

AshYorik
()

Gstreamer документация

Добрый день, уважаемые. Не могли подсказать, где можно подробнее почитать про команды gstreamer? Например, что такое payload, clock-rate

 ,

AshYorik
()

Gstreamer стрим на разных подсетях

Здравствуйте. Делаю стрим используя gstreamer, столкнулся с проблемой. В своей подсети трансляция идёт, а в другую подсеть не идёт. Устройство на другой подсети подключается, но само видео не отображается. Можете подсказать?

 

AshYorik
()

Как в Android Studio открыть сетевой стрим от Gstreamer

Всем привет! Не могли бы подсказать пожалуйста, возможно кто сталкивался с реализацией этого. У меня есть на компьютере приложение, которое используя Gstreamer стримит видео по сети, на компьютере хосте или на другом подключенном к сети я могу используя команду «gst-launch-1.0 -v udpsrc port=5000 caps=„application/x-rtp, media=video, clock-rate=90000, encoding-name=H264, payload=96, ssrc=3394826012, timestamp-offset=2215812541, seqnum-offset=46353“ ! rtph264depay ! decodebin ! videoconvert ! autovideosink sync=false» без проблем открыть видеопоток. Хочу на Android реализовать возможность просмотра, долго искал возможность реализации, в итоге нашел официальные туториалы от Gstreamer под Android Studio (https://stackoverflow.com/questions/45044210/gstreamer-examples-in-android-st...). Билдится и запускается без проблем на конкретном видео на которое имеется прямая ссылка(пример somesite/video.mp4), когда я pipeline поменял на следующее - «data->pipeline = gst_parse_launch(„udpsrc port=5000 ! application/x-rtp, media=video, clock-rate=90000, encoding-name=H264 ! decodebin ! autovideosink sync=false“, &error);» приложение никак не откреагировало и стрим соответственно не запустился. Может быть есть какие предложения или какие-то другие возможности открыть сетевой видеопоток, который на хосте транслируется при помощи Gstreamer.

 , ,

AshYorik
()

Передача по сети изображений в виде видео использованием Gstreamer на C++

Добрый день. Не могли бы помочь пожалуйста с решением следующей проблемы, хочу передавать по сети используя Gstreamer видео. Но, у меня входящие данные в виде изображений (на вход не получаю видеопоток), собственно возникла необходимость эти изображения транслировать в виде видео, после долгих поисков нашел подходящий код. (там на статичном изображении, это я могу переделать без проблем под свои данные). Код рабочий, указанное изображение без проблем выводит в окошке, но, для меня окошко не нужно и нужно это передавать по сети (чтобы используя айпи и порт в дальнейшем была возможность получить удаленно видео). Проблема с которой столкнулся - не могу понять как правильно сделать чтобы по сети передавались данные. Если есть и проще способ эту задачу решить буду благодарен узнать о них. Заранее огромное спасибо за помочь!

Код прикрепляю:

static GMainLoop *loop;

static void cb_need_data (GstElement *appsrc, guint unused_size, gpointer user_data) { static gboolean white = FALSE; static GstClockTime timestamp = 0; GstBuffer *buffer; guint size,depth,height,width,step,channels; GstFlowReturn ret; IplImage* img; guchar *data1; GstMapInfo map;

img=cvLoadImage(«frame1.jpg»,CV_LOAD_IMAGE_COLOR); height = img->height; width = img->width; step = img->widthStep; channels = img->nChannels; depth = img->depth; data1 = (guchar *)img->imageData; size = height*width*channels;

buffer = gst_buffer_new_allocate (NULL, size, NULL); gst_buffer_map (buffer, &map, GST_MAP_WRITE); memcpy( (guchar *)map.data, data1, gst_buffer_get_size( buffer ) ); /* this makes the image black/white */ //gst_buffer_memset (buffer, 0, white ? 0xff : 0x0, size);

white = !white;

GST_BUFFER_PTS (buffer) = timestamp; GST_BUFFER_DURATION (buffer) = gst_util_uint64_scale_int (1, GST_SECOND, 2);

timestamp += GST_BUFFER_DURATION (buffer);

g_signal_emit_by_name (appsrc, «push-buffer», buffer, &ret);

if (ret != GST_FLOW_OK) { /* something wrong, stop pushing */ g_main_loop_quit (loop); } }

gint main (gint argc, gchar *argv[]) { GstElement *pipeline, *appsrc, *conv, *videosink;

/* init GStreamer */ gst_init (&argc, &argv); loop = g_main_loop_new (NULL, FALSE);

/* setup pipeline */ pipeline = gst_pipeline_new («pipeline»); appsrc = gst_element_factory_make («appsrc», «source»); conv = gst_element_factory_make («videoconvert», «conv»); videosink = gst_element_factory_make («autovideosink», «videosink»);

/* setup */ g_object_set (G_OBJECT (appsrc), «caps», gst_caps_new_simple («video/x-raw», «format», G_TYPE_STRING, «RGB», «width», G_TYPE_INT, 640, «height», G_TYPE_INT, 360, «framerate», GST_TYPE_FRACTION, 1, 1, NULL), NULL); gst_bin_add_many (GST_BIN (pipeline), appsrc, conv, videosink, NULL); gst_element_link_many (appsrc, conv, videosink, NULL); //g_object_set (videosink, «device», «/dev/video0», NULL); /* setup appsrc */ g_object_set (G_OBJECT (appsrc), «stream-type», 0, «format», GST_FORMAT_TIME, NULL); g_signal_connect (appsrc, «need-data», G_CALLBACK (cb_need_data), NULL);

/* play */ gst_element_set_state (pipeline, GST_STATE_PLAYING); g_main_loop_run (loop);

/* clean up */ gst_element_set_state (pipeline, GST_STATE_NULL); gst_object_unref (GST_OBJECT (pipeline)); g_main_loop_unref (loop);

return 0; }

 , ,

AshYorik
()

RSS подписка на новые темы