Emacs: cómo abrir y reproducir un archivo de video

9

Si estoy explorando mi sistema de archivos en modo Dired y me encuentro con un archivo de video, por ejemplo, sería bueno poder reproducir ese archivo de video. ¿Cómo puedo hacer esto en Emacs?

Puedo usar Emacs para abrir un archivo de video, pero el resultado no es muy útil: solo aparece el archivo codificado como texto. ¿Hay alguna forma en que Emacs pueda reproducir archivos de video, o tal vez vincularlo a un comando que tenga otro programa como vlc reproducir el archivo?

modulitos
fuente
2
Tal vez, esta respuesta puede ayudar
Nsukami _

Respuestas:

6

En Linux hago esto todo el tiempo. Mientras está en diredmodo, coloque el cursor en el archivo que desea ver.

Escriba !, seguido del programa que desea usar.

Yo uso mplayer, entonces escribo:

!mplayer

Y eso es. También podría usar vlc, o lo que sea que funcione en su plataforma:

!vlc

Lo que es realmente bueno, usando dired, es que obtengo una ventana con la salida de mplayer (que no obtengo si, con un editor de archivos como nautiluso thunar, hago clic derecho y solicito que el archivo se mire con mplayer).

De todos modos, no se necesitan macros ni extensiones. Sólo ...!

Karpov
fuente
use &para hacerlo de forma asincrónica, por ejemplo: &vlc- recuperará sus emacs sin necesidad de cerrar el comando de shell
Darshan Chaudhary
@DarshanChaudhary &vlcno parece funcionar, pero lo vlc&hace.
otyn
2

Dired + ayuda con esto, pero incluso Dired vainilla ofrece los conceptos básicos de lo que necesita.

Esta respuesta te dice cómo, en detalle. Explica cómo usar cualquier programa externo para acceder a cualquier archivo, a pesar de que la pregunta a la que responde se trata solo de usar un visor de PDF externo para ver archivos PDF.

La respuesta también depende en cierta medida de la plataforma que utilice. En particular, si usa MS Windows, puede aprovechar las asociaciones de archivos de Windows, etc.

Dibujó
fuente
2

Describí mi configuración de VLC en esta publicación . Lo que es realmente genial es que el proceso secundario se rechaza nohup, por lo que puede reiniciar o cerrar Emacs de forma segura sin que VLC se cierre automáticamente.

Aquí está el 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)

Otra cosa que hace el código es que permite marcar varios archivos my luego ponerlos en cola en una lista de reproducción VLC.

abo-abo
fuente
0

El siguiente fragmento funcionará en un sistema operativo OSX para un solo archivo en el que se encuentra actualmente el cursor; el código no permite examinar la extensión del archivo y / o adivinar la aplicación correcta que coincide con la extensión del archivo:

(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

Si el póster original quiere lidiar con la apertura de múltiples archivos marcados, use dired-get-marked-filesy mapcarbaje la lista.

lista de leyes
fuente