Emacs: como abrir e reproduzir um arquivo de vídeo

9

Se eu estiver explorando meu sistema de arquivos no modo Dired e encontrar um arquivo de vídeo, por exemplo, seria bom poder reproduzir esse arquivo de vídeo. Como posso fazer isso no Emacs?

Posso usar o Emacs para abrir um arquivo de vídeo, mas o resultado não é muito útil - apenas o arquivo codificado é exibido como texto. Existe uma maneira do Emacs reproduzir arquivos de vídeo ou vinculá-lo a um comando que possui outro programa como o vlc play the file?

modulitos
fonte
2
Talvez, esta resposta pode ajudar
Nsukami _

Respostas:

6

No Linux, faço isso o tempo todo. Enquanto estiver no diredmodo, mantenha o cursor no arquivo que deseja assistir.

Digite !, seguido pelo programa que você deseja usar.

Eu uso mplayer, então digito:

!mplayer

E é isso. Você também pode usar o vlc ou o que funciona na sua plataforma:

!vlc

O que é realmente bom, usando dired, é que eu recebo uma janela com a saída mplayer (que eu não recebo se, com um editor de arquivos como nautilusou thunar, clico com o botão direito do mouse e solicito que o arquivo seja visualizado com mplayer).

De qualquer forma, não há necessidade de macros ou extensões. Somente ...!

Karpov
fonte
use &para fazer isso de forma assíncrona, por exemplo: &vlc- você receberá seu emacs de volta sem precisar fechar o comando shell
Darshan Chaudhary
@DarshanChaudhary &vlcparece não funcionar, mas vlc&funciona.
otyn 27/03
2

O Dired + ajuda com isso, mas mesmo o Dired de baunilha oferece o básico do que você precisa.

Esta resposta mostra como, em detalhes. Ele explica como usar qualquer programa externo para acessar qualquer arquivo, mesmo que a pergunta a que ele responde seja apenas sobre o uso de um visualizador de PDF externo para visualizar arquivos PDF.

A resposta também depende, em certa medida, de qual plataforma você usa. Em particular, se você usa o MS Windows, pode tirar proveito das associações de arquivos do Windows, etc.

Desenhou
fonte
2

Eu descrevi minha instalação do VLC neste post . O que é realmente interessante é que o processo filho é rejeitado nohup, para que você possa reiniciar ou fechar com segurança o Emacs sem que o VLC seja fechado automaticamente.

Aqui está o código:

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

Outra coisa que o código faz é que ele permite marcar vários arquivos me enfileirar todos eles em uma lista de reprodução do VLC.

abo-abo
fonte
0

O seguinte snippet funcionará em um sistema operacional OSX para apenas um arquivo em que o cursor está atualmente - o código não fornece para examinar a extensão do arquivo e / ou adivinhar o aplicativo correto que corresponde à extensão do arquivo:

(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

Se o pôster original quiser lidar com a abertura de vários arquivos marcados, use dired-get-marked-filese mapcardesça a lista.

lista de leis
fonte