FUNIX

Mettez un manchot dans votre PC


Encourager FUNIX

La consultation du site est totalement libre et gratuite, sans publicités. Les dons sont néanmoins appréciés pour payer l'hébergement et encourager son auteur


[Présentation générale  | Installation des modules | Acquisition vidéo avec dvgrab]

Dernière modification 30 octobre 2020

Outils de base pour piloter un caméscope DV


Présentation générale

Cette page a pour but de présenter les étapes qui ont été nécessaires à la reconnaissance d'un caméscope DV pour l'acquisition, l'édition vidéo et l'export vers le caméscope pour enregistrement à partir d'une distribution Mageia. Le caméscope utilisé pour le test est un Canon MV530i avec une carte d'acquisition Firewire (norme IEEE1394) PCI standard.
Le noyau de la plupart des distributions linux récentes est configuré par défaut avec la prise en compte du Firewire/IEEE1394.

Quelques définitions d'abord, la liaison IEEE1394, connue aussi comme liaison Firewire (dénomination Apple) ou i-link (dénomination Sony), est une liaison numérique haut débit entre l'ordinateur et un certain nombre de périphériques compatibles Firewire dont font parti les caméscopes DV. Votre ordinateur doit être doté d'une carte bus Firewire permettant la connexion de plusieurs périphériques Firewire. Cette carte doit être compatible OHCI (Open Host Controller Interface  Standard), c'est un standard qui a été mis au point par de grands constructeurs pour obtenir une compatibilité entre les logiciels et et les matériels. Assurez vous de cela si vous voulez la faire fonctionner sous Linux. Il se trouve que la connectique Firewire tombe un peu en désuétude et que les cartes mères actuelles intègrent de moins en moins d'entrée Firewire.

Toutes les manip décrites dans cette page sont à faire en tant que simple utilisateur sauf mention du contraire.

Installation des modules Firewire

Tous les modules Firewire sont maintenant intégrés de fait dans les noyaux récents de distributions Linux récentes. Si ce n'est pas le cas, changez de distribution !

On vérifiera d'abord que vous disposez bien d'un port Firewire en tapant dans un shell la commande lspci | grep 1394 on doit obtenir quelque chose comme cela :

04:00.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (rev c0)

C'est tout bon, ensuite on va vérifier que les modules Firewire se sont chargés automatiquement, un lsmod | grep firewire donnera

firewire_ohci 49152 0
firewire_core 81920 1 firewire_ohci
crc_itu_t 16384 1 firewire_core

Ces modules remplacent les anciens modules video1394, raw1394, ohci1394 et dv1394

Dans le même temps les fichiers spéciaux sont bien créés sous /dev, en tapant ll /dev/fw* on obtient

crw——- 1 root root 243, 0 oct. 23 17:52 /dev/fw0
crw-rw—-+ 1 root video 243, 1 oct. 25 16:45 /dev/fw1

Dans le cas présent le caméscope est branché et allumé et utilise le fichier spécial /dev/fw1. Il n'est pas nécessaire de changer les droits de ces fichiers spéciaux, on veillera juste à ce que l'utilisateur  soit dans le le groupe video. En tapant journalctl -f on devrait voir ce genre de messages:

[172387.605265] firewire_core 0000:04:00.0: rediscovered device fw0
[172388.004441] firewire_ohci 0000:04:00.0: isochronous cycle inconsistent
[172388.509266] firewire_core 0000:04:00.0: giving up on node ffc1: reading config rom failed: bus reset
[172389.129614] firewire_ohci 0000:04:00.0: isochronous cycle inconsistent
[172389.649109] firewire_core 0000:04:00.0: created device fw1: GUID 0000850000543d2e, S100
[172389.649112] firewire_core 0000:04:00.0: phy config: new root=ffc1, gap_count=5
[172508.545875] firewire_ohci 0000:04:00.0: isochronous cycle inconsistent
[172509.057419] firewire_core 0000:04:00.0: rediscovered device fw1
[172509.057423] firewire_core 0000:04:00.0: phy config: new root=ffc1, gap_count=5




Acquisition DV avec dvgrab

Vous pouvez utiliser dvgrab qui est fourni dans toutes les distributions, à défaut les sources sont disponibles  sur le site http://www.kinodv.org/. Il faudra installer préalablement le package lib64avc1394-devel et  lib64iec61883-devel. On décompresse l'archive en tapant

tar xvfz dvgrab-3.5.tar.gz

Cela donne le répertoire dvgrab-3.5 dans lequel on tape successivement

./configure
make

puis en tant que root

make install

Voici un résumé non exhaustif des options:

  --format dv1      sauvegarder en tant qu'DV-avi type 1 (par défaut) avec un seul flux qui contient l'audio et la vidéo
  --format dv2      sauvegarder en tant qu'DV-avi type 2 avec un flux vidéo et un (ou plusieurs) flux audio, ce format génère des fichiers plus gros

--format raw      sauvegarde uniquement l'information DV brute sans aucune information additionnelle. A noter qu'en terminant le fichier par un .dv, il est lisible par MPlayer et aviplay.

--format qt sauvegarde au format quicktime
--frames number   nombre d'images à sauvegarder au total  (par défaut 100000 max).

Voilà le résultat en ne sauvegardant que 100 images

dvgrab
--format dv2 --frames 100 toto
toto001.avi: 100 frames

Ça nous fait un fichier de 14Mo tout de même. Sinon vous pouvez lancer dvgrab en mode interactif en tapant dvgrab -i cela donne

rom1394_0 warning: read failed: 0x0000fffff0000414
error reading config rom directory for node 0
Found AV/C device with GUID 0x0000850000543d2e
Going interactive. Press ‘?’ for help.
Winding Stoppedd” 01:01:31:16 “” sec


En tapant ? on obtient la liste des commandes :

q=quit, p=play, c=capture, Esc=stop, h=reverse, j=backward scan, k=pause
l=forward scan, a=rewind, z=fast forward, 0-9=trickplay, <space>=play/pause


on peut donc lancer des commandes vers le caméscope, ça marche plus ou moins bien suivant les modèles. Pour chaque cassette on rembobine, on lance la lecture, puis on clique sur c (pour capture) et c’est parti, il va sauvegarder en coupant avec des fichiers de 1Go à l’endroit où la commande dvgrab a été lancée.

Autre méthode, en tapant la commande :

dvgrab -rewind -timestamp -format dv2

Cela va rembobiner, lancer la lecture et la capture en inscrivant un repère temporel à chaque fichier et enregistrer au format DV2. Les fichiers vont ressembler à ça dvgrab-2002.07.18_21-46-48.avi, par défaut ils commencent par dvgrab puis on retrouve la date et l’heure de début d’enregistrement. Pour le format des fichiers, vous trouverez une page très complète sur le sujet ici.

Maintenant il arrive que la commande dvgrab mouline et reste bloquée sur Waiting for DV… Dans ce cas il faudra éteindre le caméscope, décharger les modules Firewire avec rmmod et les recharger avec modprobe, rallumer le caméscope. Je n’ai pas trouvé de solution plus simple (mis à part le reboot).

Vous obtenez les autres options en tapant

dvgrab --help

Il ne reste plus qu’à importer vos vidéos dans votre logiciel de montage préféré, à noter que Kdenlive, comme OpenShot Video Editor ou Pitivi ne disposent pas de fonctionnalités de capture avec Firewire alors qu’elle a pu exister par le passé, preuve s’il en est que cette connectique est bien en désuétude.

[Retour page d'accueil]