якщо я можу навіть отримати VLC для забезпечення поточного "часу" відео, яке я граю ...
Це можна зробити. VLC надає безліч інтерфейсів. Давайте скористаємося telnet.
Крок 1: включення telnet у VLC
Одноразовий метод на вимогу:
vlc --extraintf telnet --telnet-port 4212 --telnet-password "foobar" video_file_to_play.avi
Або постійну конфігурацію. Запустити VLC, Інструменти - & gt; Налаштування (або Ctrl + P ), потім:
і
Примітка: цей постійний метод вимагає перезавантаження VLC.
Крок 2: тестування
Тепер ви можете керувати VLC за допомогою telnet. Введіть правильний пароль під час запиту. Приклад:
$ telnet localhost 4212
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
VLC media player 2.2.2 Weatherwax
Password:
Welcome, Master
> get_time
30
>
Як ви можете бачити, команда для отримання поточного часу відтворення get_time
. Тип help
дізнатися більше про команди VLC, quit
кинути. Можливо, ви знайдете snapshot
корисним.
Крок 3: використання сценарію
Досить проста труба. Тут я використовую nc
замість telnet
(і foobar
мій пароль, використовуйте ваш):
printf '%s\n' "foobar" "get_time" | nc localhost 4212
Мій VLC повертає:
VLC media player 2.2.2 Weatherwax
Password: ����
Welcome, Master
87
> Bye-bye!
тому я використовую head
і tail
витягти лише відповідний рядок:
printf '%s\n' "foobar" "get_time" | nc localhost 4212 | head -n 4 | tail -n 1
На жаль, дозвіл часу становить 1 секунду. Я не знайшов команди для отримання номера поточного кадру або близько того.