Emacs: як відкрити та відтворити відео файл


9

Якщо я вивчаю мою файлову систему в режимі «Обмотка» і стикаюся, наприклад, з відеофайлом, було б непогано мати можливість відтворити цей відеофайл. Як я можу це зробити в Emacs?

Я можу використовувати Emacs для відкриття відеофайлу, але результат не дуже корисний - я просто отримую закодований файл, який відображається у вигляді тексту. Чи є спосіб Emacs відтворювати відеофайли або, можливо, пов'язувати його з командою, яка має іншу програму, наприклад vlc, відтворювати файл?


2
Можливо, ця відповідь може допомогти
Nsukami _

Відповіді:


6

У Linux я роблю це постійно. Перебуваючи в diredрежимі, наведіть курсор на файл, який ви хочете переглянути.

Введіть !, а потім програму, яку ви хочете використовувати.

Я використовую mplayer, тому я набираю:

!mplayer

І це все. Ви можете так само добре використовувати vlc або все, що працює на вашій платформі:

!vlc

Що дійсно добре, використовуючи dired, це те, що я отримую вікно з результатом mplayer (якого я не отримую, якщо в такому редакторі файлів, як, nautilusабо thunar, я клацну правою кнопкою миші та попрошую, щоб файл переглядав mplayer).

У будь-якому разі, не потрібно ніяких макросів чи розширень. Просто ...!


використовуйте &для цього асинхлісно, ​​наприклад: &vlc- ви повернете свої emacs назад, не потрібно закривати команду оболонки
Даршан Чаддхарі,

@DarshanChaudhary, &vlcздається, не працює, але vlc&робить.
otyn

@otyn я думаю Darshan кошти , використовуючи & замість з !. тому, коли курсор знаходиться на потрібному файлі, просто натисніть, &і це запустить його асинхронно на відміну !.
kotakotakota

2

Dired + допомагає в цьому, але навіть ванільний Dired пропонує основи того, що вам потрібно.

Ця відповідь розповідає, як детально. Він пояснює, як використовувати будь-яку зовнішню програму для доступу до будь-якого файлу, хоча питання, на яке він відповідає, стосується лише використання зовнішнього переглядача PDF для перегляду файлів PDF.

Відповідь певною мірою залежить від того, якою платформою ви користуєтесь. Зокрема, якщо ви використовуєте MS Windows, ви можете скористатися асоціаціями файлів Windows тощо.


2

Я описав моє налаштування VLC в цій публікації . У цьому дійсно круто - це те, що дочірній процес відмовляється nohup, тому ви можете безпечно перезапустити або закрити Emacs, не автоматично закриваючи VLC.

Ось код:

(require 'dired-aux)
(defvar dired-filelist-cmd
  '(("vlc" "-L")))
(defun dired-start-process (cmd &optional file-list)
  (interactive
   (let ((files (dired-get-marked-files
                 t current-prefix-arg)))
     (list
      (dired-read-shell-command "& on %s: "
                                current-prefix-arg files)
      files)))
  (let (list-switch)
    (start-process
     cmd nil shell-file-name
     shell-command-switch
     (format
      "nohup 1>/dev/null 2>/dev/null %s \"%s\""
      (if (and (> (length file-list) 1)
               (setq list-switch
                     (cadr (assoc cmd dired-filelist-cmd))))
          (format "%s %s" cmd list-switch)
        cmd)
      (mapconcat #'expand-file-name file-list "\" \"")))))

(define-key dired-mode-map "r" 'dired-start-process)

Ще одна річ, яку робить код, - це те, що вона дозволяє позначати кілька файлів m, а потім чергувати їх у список відтворення VLC.


0

Наступний фрагмент буде працювати в операційній системі OSX лише для одного файлу, де зараз знаходиться курсор - код не передбачає вивчення розширення файлу та / або відгадування правильної програми, що відповідає розширенню файлу:

(start-process
  "my-process-name" ;; process name
  nil ;; buffer output name, if an output buffer is so desired.
  "open" ;; argument 1
  "-a" ;; argument 2
  "/Applications/VLC.app/Contents/MacOS/VLC" ;; argument 3
  (dired-get-file-for-visit)) ;; argument 4

Якщо оригінальний плакат хоче розібратися з відкриттям декількох позначених файлів, скористайтеся списком dired-get-marked-filesта mapcarвниз.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.