Задать вопрос
robux
@robux

Связка GStreamer+Ruby(mingw32) работает неполноценно в Windows

GStreamer прекрасно работает в Linux (Lubuntu), но в Windows (XP) не работает:

require 'gtk2'
require 'gst'

def os_family
  case RUBY_PLATFORM
    when /ix/i, /ux/i, /gnu/i, /sysv/i, /solaris/i, /sunos/i, /bsd/i
      'unix'
    when /win/i, /ming/i
      'windows'
    else
      'other'
  end
end

Gst.init

pipeline = Gst::Pipeline.new('pipeline1')
videosrc = Gst::ElementFactory.make('videotestsrc', 'videosrc1')
videoconvert = Gst::ElementFactory.make('autovideoconvert', 'videoconvert1')
videosink = Gst::ElementFactory.make('autovideosink', 'videosink1');

pipeline.add(videosrc, videoconvert, videosink)
videosrc >> videoconvert >> videosink

window = Gtk::Window.new('Video test')
window.signal_connect("destroy") { pipeline.stop; Gtk.main_quit }
window.set_default_size(320, 240)
window.show_all

pipeline.bus.add_watch do |bus, message|
  if (message and message.structure and message.structure.name \
  and (message.structure.name == 'prepare-xwindow-id'))
    Gdk::Threads.synchronize do
      Gdk::Display.default.sync
      if not window.destroyed? and window.window
        win_id = nil
        if os_family=='windows'
          win_id = window.window.handle
        else
          win_id = window.window.xid
        end
        imagesink = message.src
        imagesink.set_property("force-aspect-ratio", true)
        imagesink.set_xwindow_id(win_id)
      end
    end
  end
  true
end

pipeline.play
Gtk.main

Пробовал и ruby1.9.3-mingw32 и ruby2.0.0-mingw32.
В обоих случаях библиотеки доустанавливал через rubygems:
gem.bat install gtk2 gstreamer
(так как по-другому в mingw32 не установить)

Посоветуйте:
1) как реанимировать «dshowvideosink» в новой связке ruby(>=1.9)+gst(1.0)?
2) какой компонент вместо «dshowvideosink» можно использовать в Windows?
3) как [пере]установить gstreamer (или плугины) отдельно от ruby в случае варианта «mingw32»?
4) существуют ли сейчас ruby версии >= 1.9 не в варианте «mingw32»?
  • Вопрос задан
  • 3410 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
Alexufo
@Alexufo
противоречивый, сложный, весь компьютерный.
очень путано. Что не работает то?) На виндовом хостинге не инициализируется?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
SpectrumData Екатеринбург
от 200 000 до 300 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
18 янв. 2025, в 10:04
50000 руб./за проект
18 янв. 2025, в 09:18
5500 руб./за проект
18 янв. 2025, в 07:20
50000 руб./за проект