Emacs: jak otworzyć i odtworzyć plik wideo

9

Jeśli eksploruję mój system plików w trybie Dired i napotkam na przykład plik wideo, byłoby miło móc go odtworzyć. Jak mogę to zrobić w Emacsie?

Mogę użyć Emacsa do otwarcia pliku wideo, ale wynik nie jest zbyt użyteczny - po prostu kodowany plik wyświetla się jako tekst. Czy istnieje sposób, w jaki Emacs może odtwarzać pliki wideo, czy może połączyć je z poleceniem, które ma inny program, taki jak vlc, odtwarzający plik?

modulitos
źródło
2
Może ta odpowiedź może pomóc
Nsukami _

Odpowiedzi:

6

W Linuksie robię to cały czas. W diredtrybie ustaw kursor na pliku, który chcesz obejrzeć.

Wpisz !, a następnie program, którego chcesz użyć.

Używam mplayer, więc piszę:

!mplayer

I to wszystko. Równie dobrze możesz użyć vlc lub czegokolwiek, co działa na twojej platformie:

!vlc

Naprawdę dobre, używając dired, jest to, że otrzymuję okno z wyjściem mplayera (którego nie dostaję, jeśli za pomocą edytora plików takiego jak nautiluslub thunar, klikam prawym przyciskiem myszy i żądam, aby plik był oglądany za pomocą mplayera).

W każdym razie nie potrzeba żadnych makr ani rozszerzeń. Właśnie ...!

Karpow
źródło
użyj, &aby zrobić to asynchronicznie, np .: &vlc- odzyskasz emacsa bez konieczności zamykania komendy powłoki
Darshan Chaudhary
@DarshanChaudhary &vlcnie wydaje się działać, ale vlc&działa.
otyn
@otyn myślę środki Darshan stosując & zamiast od !. więc kiedy kursor znajduje się na żądanym pliku, po prostu naciśnij &i to uruchomi go asynchronicznie, w przeciwieństwie do !.
kotakotakota
2

Dired + pomaga w tym, ale nawet waniliowy Dired oferuje podstawy tego, czego potrzebujesz.

Ta odpowiedź szczegółowo wyjaśnia. Wyjaśnia, jak korzystać z dowolnego programu zewnętrznego, aby uzyskać dostęp do dowolnego pliku, nawet jeśli pytanie, na które odpowiada, dotyczy tylko korzystania z zewnętrznej przeglądarki PDF do przeglądania plików PDF.

Odpowiedź zależy również w pewnym stopniu od używanej platformy. W szczególności, jeśli używasz MS Windows, możesz skorzystać z powiązań plików Windows itp.

Rysował
źródło
2

Opisałem moją konfigurację VLC w tym poście . Naprawdę fajne jest to, że proces potomny jest odrzucany nohup, więc możesz bezpiecznie ponownie uruchomić lub zamknąć Emacsa bez automatycznego zamykania VLC.

Oto kod:

(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)

Inną rzeczą, którą robi kod, jest to, że pozwala on oznaczyć kilka plików m, a następnie umieścić je w kolejce na liście odtwarzania VLC.

abo-abo
źródło
0

Poniższy fragment kodu będzie działał w systemie operacyjnym OSX tylko dla jednego pliku, w którym aktualnie znajduje się kursor - kod nie umożliwia sprawdzenia rozszerzenia pliku i / lub odgadnięcia właściwej aplikacji, która pasuje do rozszerzenia pliku:

(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

Jeśli oryginalny plakat chce poradzić sobie z otwieraniem wielu zaznaczonych plików, użyj listy w dół dired-get-marked-filesi w mapcardół.

lista prawnicza
źródło