VLC Plauer + работа с камерой

 
+1
 
Delphi, Kylix & Pascal
ava
estra | 26.09.2013, 17:37
Всем привет.

Помогите. Нужно с помощью VLC получать картинку и звук с камеры. Использую PasLibVlc. Проблема в следующем. Если я запускаю vlc с командной строки таким образом

vlc.exe dshow:// :dshow-vdev="Microsoft LifeCam Studio" :dshow-adev="Настольный микрофон (Studio - M" :live-caching=300

то все нормально, но вот из кода, который выглядит так


procedure TMainForm.Button1Click(Sender: TObject);
var
  p_li: libvlc_instance_t_ptr;
  p_mi: libvlc_media_player_t_ptr;

  p_md: libvlc_media_t_ptr;

  args: packed array[0..0] of PAnsiChar;
begin
   libvlc_dynamic_dll_init_with_path( 'c:\Program Files (x86)\VideoLAN\VLC\' );

   if libvlc_dynamic_dll_error <> '' then
      raise Exception.Create( libvlc_dynamic_dll_error );

   args[0] := nil;

   p_li := libvlc_new( Length( args )-1, @args[0] );
   p_mi := nil;

   p_md := libvlc_media_new_path( p_li, PAnsiChar( System.UTF8Encode( 'dshow://' ) ) );

   libvlc_media_add_option( p_md, ':dshow-vdev=Microsoft LifeCam Studio' );
   libvlc_media_add_option( p_md, ':dshow-adev=Настольный микрофон (S' );
   libvlc_media_add_option( p_md, ':live-caching=300' );

   p_mi := libvlc_media_player_new_from_media( p_md );

   libvlc_media_release( p_md );

   libvlc_media_player_set_hwnd( p_mi, Handle );
   libvlc_media_player_play( p_mi );
end;


я вижу только изображение, звука нет. Было ощущение, что он понимает только первып передаваемый параметр, но убрав строку


libvlc_media_add_option( p_md, ':dshow-vdev=Microsoft LifeCam Studio' );


я звука не получил. Что я не так делаю? помогите разобраться.
Comments (4)
ava
Illusion Dolphin | 26.09.2013, 21:45 #
У меня есть 2 варианта:
1) "Настольный микрофон (Studio - M" <> "Настольный микрофон (S"

2) PAnsiChar неправильно понимает русский:

var
  libvlc_media_add_option : procedure(
    p_md         : libvlc_media_t_ptr;
    ppsz_options : PAnsiChar
  ); cdecl;
ava
estra | 27.09.2013, 09:23 #
Цитата (Illusion Dolphin @ 26.9.2013,  21:45)
У меня есть 2 варианта:

1) "Настольный микрофон (Studio - M" <> "Настольный микрофон (S"



2) PAnsiChar неправильно понимает русский:



var
   libvlc_media_add_option : procedure(
  p_md   : libvlc_media_t_ptr;
  ppsz_options : PAnsiChar
   ); cdecl;


Ни 1 ни 2 не прокатило...
ava
Illusion Dolphin | 27.09.2013, 14:26 #
Может поделитесь как 2е решали?
ava
estra | 27.09.2013, 14:52 #
Цитата (Illusion Dolphin @ 27.9.2013,  14:26)
Может поделитесь как 2е решали?

Да, поторопился мальца. Сначала сделал так


libvlc_media_add_option( p_md, PAnsiChar( ':dshow-vdev=Microsoft LifeCam Studio' ) );


и не пошло, потом сделал так и заработало


libvlc_media_add_option( p_md, PAnsiChar( System.UTF8Encode( ':dshow-vdev=Microsoft LifeCam Studio' ) ) );


Теперь другая проблема. Если получаю видео+звук из плеера, то со звуков все нормально, а если из своей программы, но присутствуют сильные шумы. Как от этого избавиться?
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit