Я написал код на C++, используя конвейер GStreamer, который принимает поток UDP в качестве входных данных и записывает кадры в изображения JPEG. Однако некоторые выходные изображения имеют разбросанные пиксели и размытость, и я не уверен, что вызывает эту проблему. Входное видео, которое используется в потоке udp, представляет собой четкое и высококачественное видео со скоростью 1 кадр в секунду и форматом H264 (базовый уровень). Мы используем Ubuntu 20.04 в Virtual Box. Первый код — это серверный код, который создает поток udp из входного видео.
#include
#include
int main(int argc, char *argv[]) {
gst_init(&argc, &argv);
// path to your video file
const char *video_path = "./data/test_video.mp4";
// the host address
const char *host_address = "224.1.1.1";
//the port
int port = 5000;
GstElement *pipeline = gst_parse_launch(
g_strdup_printf("filesrc location=%s ! qtdemux ! rtph264pay config-interval=1 ! udpsink host=%s port=%d auto-multicast=true", video_path, host_address, port), NULL);
if (!pipeline) {
g_printerr("Pipeline could not be created.\n");
return -1;
}
GstStateChangeReturn ret = gst_element_set_state(pipeline, GST_STATE_PLAYING);
if (ret == GST_STATE_CHANGE_FAILURE) {
g_printerr("Unable to set the pipeline to the playing state.\n");
gst_object_unref(pipeline);
return -1;
}
g_print("Streaming video from %s to %s:%d...\n", video_path, host_address, port);
GMainLoop *loop = g_main_loop_new(NULL, FALSE);
g_main_loop_run(loop);
gst_element_set_state(pipeline, GST_STATE_NULL);
gst_object_unref(pipeline);
g_main_loop_unref(loop);
return 0;
}
затем второй код использует этот поток и записывает кадры в изображения JPEG.
Код правильно записывает кадры по указанному пути. Однако некоторые выходные изображения JPEG содержат разбросанные пиксели и артефакты.
[img]https://i.sstatic .net/KnP2SgHG.jpg[/img]
Будем очень признательны за любую информацию о том, что может быть причиной этих проблем и как их решить.
Я написал код на C++, используя конвейер GStreamer, который принимает поток UDP в качестве входных данных и записывает кадры в изображения JPEG. Однако некоторые выходные изображения имеют разбросанные пиксели и размытость, и я не уверен, что вызывает эту проблему. Входное видео, которое используется в потоке udp, представляет собой четкое и высококачественное видео со скоростью 1 кадр в секунду и форматом H264 (базовый уровень). Мы используем Ubuntu 20.04 в Virtual Box. [b]Первый код — это серверный код, который создает поток udp из входного видео.[/b] [code]#include #include
int main(int argc, char *argv[]) { gst_init(&argc, &argv);
// path to your video file const char *video_path = "./data/test_video.mp4"; // the host address const char *host_address = "224.1.1.1"; //the port int port = 5000;
if (!pipeline) { g_printerr("Pipeline could not be created.\n"); return -1; }
GstStateChangeReturn ret = gst_element_set_state(pipeline, GST_STATE_PLAYING); if (ret == GST_STATE_CHANGE_FAILURE) { g_printerr("Unable to set the pipeline to the playing state.\n"); gst_object_unref(pipeline); return -1; }
g_print("Streaming video from %s to %s:%d...\n", video_path, host_address, port); GMainLoop *loop = g_main_loop_new(NULL, FALSE); g_main_loop_run(loop);
return 0; } [/code] [b]затем второй код использует этот поток и записывает кадры в изображения JPEG.[/b] [code]#include #include #include #include #include
if (!pipeline) { g_printerr("Pipeline could not be created. Exiting.\n"); return -1; }
GstElement *sink = gst_bin_get_by_name(GST_BIN(pipeline), "sink"); if (!sink) { g_printerr("Appsink element could not be found. Exiting.\n"); return -1; }
return 0; } [/code] Код правильно записывает кадры по указанному пути. Однако некоторые выходные изображения JPEG содержат разбросанные пиксели и артефакты. [img]https://i.sstatic .net/KnP2SgHG.jpg[/img] Будем очень признательны за любую информацию о том, что может быть причиной этих проблем и как их решить.
Я должен отправлять звук на камеру через приложение Android, камера использует кодирование Mulaw, поэтому я создал функцию JNI C Gstreamer для отправки звука в камеру. p>
Я не уверен, как запустить пользовательскую регрессию (с использованием пакета pyfixest) с несколькими столбцами, используя кадры данных bigquery, и добавить остаток регрессии в качестве нового столбца. Я не могу понять, как передать полный фрейм...
Я работаю над конвейером Apache Beam, который обрабатывает данные и записывает их в BigQuery. Конвейер отлично работает при использовании DirectRunner, но когда я переключаюсь на DataflowRunner, он завершается без ошибок и предупреждений, но не...
Я работаю над конвейером Apache Beam, который обрабатывает данные и записывает их в BigQuery. Конвейер отлично работает при использовании DirectRunner, но когда я переключаюсь на DataflowRunner, он завершается без ошибок и предупреждений, но не...
Я работаю над конвейером Apache Beam, который обрабатывает данные и записывает их в BigQuery. Конвейер отлично работает при использовании DirectRunner, но когда я переключаюсь на DataflowRunner, он завершается без ошибок и предупреждений, но не...