LibVLC: выделение и полноэкранные проблемы

В настоящее время я пытаюсь использовать LibVLC для воспроизведения видео и у меня есть несколько вопросов:

  1. На компьютере с несколькими экранами, как я могу сказать LibVLC показывать полный экран на определенном экране?
  2. Я пытаюсь использовать libvlc_video_set_marquee_int, После некоторого следа и ошибки я обнаружил, что это работает, когда я приостанавливаю основной поток после запуска видео в течение приблизительно 70 мс перед установкой текстового поля. Зачем? Как я могу сделать это лучше?
  3. Я хочу показать выделенный текст, но без заголовка видео (LibVLC отображает заголовок видео или имя файла в начале). Я прочитал, что вы можете отключить заголовок видео, передав --no-video-title-show возможность libvlc_new(), Однако это имеет две проблемы: во-первых, в документации сказано, что нельзя передавать параметры. Ну, ладно... Но, во-вторых, использование этой опции странным образом влияет на выделенные тексты: вы можете установить текст, но он просто мигает один раз и сразу исчезает, несмотря ни на что libvlc_marquee_Timeout установлено в.

1 ответ

Как раз сегодня утром, я думаю, я понял с помощью людей на форумах Videolan. Я должен отметить, что я работаю в системе Linux, я не знаю, какую ОС вы используете, но я знаю, что есть некоторые различия. Вот что я сделал:

Во-первых, мне показалось полезным сначала заставить шатер работать в командной строке. Вот ссылка на обсуждение этой темы:

http://forum.videolan.org/viewtopic.php?f=13&t=110743

Параметры командной строки, которые работали для меня:

 cvlc --extraintf=http:logger --verbose=2 --file-logging --logfile=vlc-log.txt --sub-source="marq{marquee=marquee text here}" test.mpg

По пути у меня возникла проблема, из-за которой даже с помощью приведенной выше команды я не смог показать выделение. В моей системе gentoo мне нужно было пересобрать vlc с включенным fontconfig и truetype.

Теперь, когда cvlc отображает выделение на видео, я вернулся к libvlc. Я что-то упустил, поэтому я начал еще одно обсуждение здесь:

http://forum.videolan.org/viewtopic.php?f=32&t=110783

Ниже приведены фрагменты кода C / libvlc, которые в конечном итоге позволили мне показать выделение по требованию без выделения имени файла.

В основном:

const char * const vlc_args[] = {
"--extraintf=http:logger",
"--verbose=1",
"--file-logging",
"--logfile=/home/user/data/logs/vlc",
"--no-video-title-show",                // <- this option disables the filename marquee
"--sub-filter=marq"};                   // <- this option allows the on demand marquee to display properly

vlc_inst = libvlc_new (sizeof(vlc_args) / sizeof(vlc_args[0]), vlc_args);

В обратном вызове нажатия клавиш:

        libvlc_video_set_marquee_int(media_player, 0, 1);       /* enable marquee */
        libvlc_video_set_marquee_int(media_player, 6, 32);      /* set marquee font size */
        libvlc_video_set_marquee_int(media_player, 7, 2000);    /* set marquee timeout (ms) */
        libvlc_video_set_marquee_string(media_player, 1, "on demand marquee string here");

Надеюсь, что это поможет вам получить рабочее решение.

Другие вопросы по тегам