Emacs: comment ouvrir et lire un fichier vidéo


9

Si j'explore mon système de fichiers en mode fatigué et que je tombe sur un fichier vidéo, par exemple, ce serait bien de pouvoir lire ce fichier vidéo. Comment puis-je faire cela dans Emacs?

Je peux utiliser Emacs pour ouvrir un fichier vidéo, mais le résultat n'est pas très utile - je reçois simplement le fichier encodé affiché sous forme de texte. Existe-t-il un moyen pour Emacs de lire des fichiers vidéo, ou peut-être de le lier à une commande qui a un autre programme comme vlc pour lire le fichier?


2
Peut-être que cette réponse peut aider
Nsukami _

Réponses:


6

Sous Linux, je fais ça tout le temps. En diredmode, placez le curseur sur le fichier que vous souhaitez regarder.

Tapez !, suivi du programme que vous souhaitez utiliser.

J'utilise mplayerdonc je tape:

!mplayer

Et c'est tout. Vous pouvez tout aussi bien utiliser vlc, ou tout ce qui fonctionne sur votre plateforme:

!vlc

Ce qui est vraiment bien, en utilisant dired, c'est que j'obtiens une fenêtre avec la sortie de mplayer (que je n'obtiens pas si, avec un éditeur de fichier tel que nautilusou thunar, je fais un clic droit et demande que le fichier soit regardé avec mplayer).

Quoi qu'il en soit, pas besoin de macros ou d'extensions. Juste ...!


utiliser &pour le faire de manière asynchrone, par exemple: &vlc- vous récupérerez vos emacs sans avoir besoin de fermer la commande shell
Darshan Chaudhary

@DarshanChaudhary &vlcne semble pas fonctionner, mais vlc&fonctionne.
Otyn

2

Dired + aide à cela, mais même vanilla Dired offre les bases de ce dont vous avez besoin.

Cette réponse vous explique comment, en détail. Il explique comment utiliser n'importe quel programme externe pour accéder à n'importe quel fichier, même si la question à laquelle il répond ne concerne que l'utilisation d'une visionneuse PDF externe pour afficher les fichiers PDF.

La réponse dépend également dans une certaine mesure de la plateforme que vous utilisez. En particulier, si vous utilisez MS Windows, vous pouvez profiter des associations de fichiers Windows, etc.


2

J'ai décrit ma configuration VLC dans cet article . Ce qui est vraiment cool, c'est que le processus enfant est rejeté nohup, vous pouvez donc redémarrer ou fermer Emacs en toute sécurité sans que VLC se ferme automatiquement.

Voici le code:

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

Le code permet également de marquer plusieurs fichiers avec m, puis de les mettre tous en file d'attente dans une liste de lecture VLC.


0

L'extrait suivant fonctionnera sur un système d'exploitation OSX pour un seul fichier où le curseur est actuellement - le code ne prévoit pas d'examiner l'extension de fichier et / ou de deviner l'application correcte qui correspond à l'extension de fichier:

(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 l'affiche originale souhaite gérer l'ouverture de plusieurs fichiers marqués, utilisez dired-get-marked-fileset mapcardescendez la liste.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.