Цифровой садик - приветственная

Цифровой садик - приветственная | Полный список всего, что тут есть | RSS | Подписаться через follow.it

26.04.2022

mpv+org - для расшифровки аудио

Средство управления плеером mpv из emacs. Именно удобное для расшифровки. Гонять по многу раз с одного места, возвращаться на короткие промежутки, ставить отметки времени в файле…

Есть печаль — работает как-то слишком «волшебно», в смысле, один и тот же файл может раз пять не открыть с ошибкой «Failed connect to mpv», потом внезапно открывает. Куда тут копать — непонятно, так что пока смиряюсь.

Установить mpv.el можно из MELPA.

Helper functions to control a mpv process via its IPC interface.

Единственное, что хочется - точность, большую, чем секунды.

Кнопочки:

(global-set-key "\M-ps" 'mpv-play) ; _s_tart
(global-set-key "\M-pk" 'mpv-kill)
(global-set-key "\M-pp" 'mpv-pause)
(global-set-key "\M-pi" 'mpv-insert-playback-position)
(global-set-key "\M-pb" 'mpv-seek-backward)
(global-set-key "\M-pf" 'mpv-seek-forward)      
(global-set-key "\M-pt" 'mpv-seek-to-position-at-point);_t_his
(global-set-key "\M-pl" 'mpv-speed-decrease); _l_ess    
(global-set-key "\M-pm" 'mpv-speed-increase); _m_ore    
(global-set-key "\M-pu" 'mpv-speed-set); _u_se speed - не использую.

Если вставить опцию force-window=yes в конфиг (~/.config/mpv/mpv.conf или разрешить конфиги к файлам и в соотв. файл), то окно тоже показывает. Так что с видео работать можно.

Орг-мод в сочетании с mpv.el позволяет делать специальные ссылки — как file:, но открываются при помощи mpv-play. Чтоб не лезть отдельно открывать, что там расшифровываешь, а прямо из файла с расшифровкой запускать.

(org-add-link-type "mpv" #'mpv-play)
(defun org-mpv-complete-link (&optional arg)
  (replace-regexp-in-string
   "file:" "mpv:"
   (org-file-complete-link arg)
   t t))

В текст расшифровки можно вставлять отметки времени для быстрого перехода к ним — сделано из org-timer-item, выглядит примерно так:

- 0:01:15 :: А теперь поговорим о…

Нижеследующее позволяет вставлять такие отметки с позицией в файле по M-RET, если не запущен org-timer, и если это продолжение уже начатого списка (первую можно и вручную вписать, произвольно, потом поставить пару реальных, первую и удалить…):

(defun org-timer-item--mpv-insert-playback-position (fun &rest args)
  "When no org timer is running but mpv is alive, insert playback position."
  (if (and
       (not org-timer-start-time)
       (mpv-live-p))
      (mpv-insert-playback-position t)
    (apply fun args)))
(advice-add 'org-timer-item :around
            #'org-timer-item--mpv-insert-playback-position)

Чтобы по Enter переходить на указанную позицию в файле:

(add-hook 'org-open-at-point-functions #'mpv-seek-to-position-at-point)

По-моему, всё необходимое.


Если у вас есть мысли, комментарии, предложения или отклики по поводу этой страницы или этого цифрового сада в целом, напишите мне сообщение через Яндекс.Форму или на agnessa@agnessa.pp.ru. Мне ооочень интересно!

Задонатить.


An IndieWeb Webring 🕸💍