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»?
  • Вопрос задан
  • 3396 просмотров
Пригласить эксперта
Ответы на вопрос 1
Alexufo
@Alexufo
противоречивый, сложный, весь компьютерный.
очень путано. Что не работает то?) На виндовом хостинге не инициализируется?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы