Почему этот скрипт gst-launch не отображает никакого видеоокна?

#gstreamer

#gstreamer

Вопрос:

Следующее работает без сбоев на моем компьютере (обратите внимание, что я в основном просто выполняю полный цикл возврата к моему autovideosink одной командой):

 .gst-launch-1.0.exe videotestsrc is-live=true ! openh264enc ! rtph264pay ! rtph264depay ! decodebin ! autovideosink
  

Я получаю демонстрационное окно и вижу тестовое исходное видео.

Затем я пытаюсь сделать то же самое, но через UDP. Итак, у меня есть два скрипта на одном компьютере. Один действует как сервер:

 .gst-launch-1.0.exe videotestsrc is-live=true ! openh264enc ! rtph264pay ! udpsink port=3000
  

А другой действует как клиент:

 .gst-launch-1.0.exe -v udpsrc port=3000 ! rtph264depay ! decodebin ! autovideosink
  

Проблема в том, что видеоокно не отображается, когда я запускаю его через UDP, используя описанный выше метод сервер / клиент. Все, что я получаю (на стороне клиента), это следующий вывод на консоль:

Установка конвейера на ПАУЗУ … 0:00:00.263728000 9200 000002902E7336F0 WARN d3dvideosink d3dhelpers.c: 1146:d3d_set_window_handle: Window HWND уже установлено значение: 0 Конвейер запущен и не нуждается в предварительном запуске… Настройка конвейера для ВОСПРОИЗВЕДЕНИЯ… Новые часы: GstSystemClock

Что насчет передачи по UDP приводит к тому, что в этом примере что-то не работает? Большое спасибо.

Комментарии:

1. Я предполагаю, что вы запускаете получателя после отправителя? В этом случае вы пропустите данные SPS / PPS и не сможете декодировать поток и, следовательно, не получите никакого окна.

2. Что произошло потом? @Ben

3. Извините за поздний ответ @RC0993. К сожалению, ничего. Я все еще не получаю визуальное окно. Я только что попробовал это. Сначала я запустил проигрыватель, подождал несколько секунд, а затем запустил код на стороне сервера. То же поведение. Я собираюсь попробовать это в Linux этим утром и посмотреть, получу ли я другое поведение с теми же сценариями. Я сообщу о своих выводах здесь.

4. Хорошо, я подтвердил, что он работает на Linux (ну, Bash для Windows). Мне пришлось немного изменить скрипт «client», чтобы включить caps =»application / x-rtp», но как только я это сделал, я смог получить визуальное окно. Сначала я запускаю клиент, а затем сервер. Я должен сделать вывод, что что-то не работает правильно в Windows. Я попробую то же самое при установке Ubuntu и вернусь (чтобы убедиться, что это не какая-то причуда с запуском его под Ubuntu для Windows).

5. Мне не удалось легко установить дистрибутив Linux на работе. Но тот факт, что он отлично работает под Bash для Windows, говорит сам за себя (тем более, что это одна и та же машина). Я мог бы также отправить что-нибудь в группы распространения gstreamer.