Comment puis-je valider un fichier vidéo à partir d'un script?
J'ai un serveur avec beaucoup de fichiers vidéo. Après une restauration, j'ai remarqué que la somme de contrôle d'un couple de fichiers qui ont été modifiés. Depuis je n'ai pas de sommes de contrôle pour tous les fichiers, je voulais écrire un script pour vérifier l'intégrité des fichiers. C'est simple pour les archives (tar t
, unzip -t
, rar t
, etc) ou des images (convert image.jpg /tmp/test.png
).
Quelles options dois-je passer à mplayer
ou vlc
ou de tout autre outil de montage vidéo sous Linux, pour obtenir le même effet (c'est à dire valider le contenu du fichier sans avoir à regarder la vidéo en entier)?
La vidéo est corrompu (ne joue pas) si il n'a pas la même somme? Juste curieux de savoir pourquoi vous en avez besoin afin que je puisse apprendre.
Comment pensez-vous que les fichiers sont corrompus? Trouver la "Root cause" de ces questions pourrait être mieux dépensé. Voir ma réponse ci-dessous pour plus de suggestions sur la validation du fichier.
Je sauvegarde mon serveur sur disques durs. Il semble que l'un de la sauvegarde de disques durs en avait un défaut. Le fichier de somme de contrôle a changé quand j'ai restauré à partir de la sauvegarde. Je ne sais pas pourquoi c'est arrivé, mais je suppose une erreur de bit à 1 to de données est quelque chose qui peut arriver.
Mon problème est que je n'ai pas de sommes de contrôle pour tous les fichiers. J'ai donc besoin d'un moyen de valider ces fichiers, trop.
Comment pensez-vous que les fichiers sont corrompus? Trouver la "Root cause" de ces questions pourrait être mieux dépensé. Voir ma réponse ci-dessous pour plus de suggestions sur la validation du fichier.
Je sauvegarde mon serveur sur disques durs. Il semble que l'un de la sauvegarde de disques durs en avait un défaut. Le fichier de somme de contrôle a changé quand j'ai restauré à partir de la sauvegarde. Je ne sais pas pourquoi c'est arrivé, mais je suppose une erreur de bit à 1 to de données est quelque chose qui peut arriver.
Mon problème est que je n'ai pas de sommes de contrôle pour tous les fichiers. J'ai donc besoin d'un moyen de valider ces fichiers, trop.
OriginalL'auteur Aaron Digulla | 2009-05-21
Vous devez vous connecter pour publier un commentaire.
Cela ressemble à ce que vous voulez faire est:
et ensuite d'analyser la production et la valeur de retour pour voir si elle peut effectivement jouer & décoder le flux de données. Cela va prendre un peu de temps (mais plus rapide que le temps réel). Si vous voulez quelque chose d'encore plus vite, voici quelques suggestions:
Une chose simple va être de faire un
sur le fichier, puis d'analyser la sortie et de regarder la valeur de retour de quelque chose qui semble raisonnable.
À l'égard des sommes de contrôle est incorrect, il va être difficile de savoir si c'est un problème pour votre lecteur multimédia ou non (mplayer, vlc, totem, etc.). Un bon lecteur multimédia tolérer beaucoup de bits ou d'octets erreurs de niveau avec peu d'impact sur la lecture. Un très stricte lecteur multimédia de sortie lorsqu'il voit mal formé ou incorrecte codec & wrapper octets.
Pour vérifier le conteneur (container) octets, vous pourriez faire quelque chose comme
Le problème est que mencoder souhaitez créer un .avi fichier de sortie. Si vos entrées sont .avi, ensuite ce sera excellent travail.
Vous pouvez exécuter un semblable ffmpeg en ligne de commande, comme ceci:
Si les fichiers sont .fichiers mp4, vous voudrez peut-être jeter un oeil à mp4box ( http://www.videohelp.com/tools/mp4box ) pour la réalisation d'une tâche similaire. Le matroska outils sont également bonnes pour ce genre de chose. ( http://www.matroska.org/ )
OriginalL'auteur slacy
Si vous travaillez avec des fichiers MP4, vous voudrez peut-être avoir un coup d'oeil à la mpeg4ip projet, en particulier les outils comme mp4videoinfo ou mp4info. Cela peut être suffisant pour répondre à vos besoins, et est très rapide.
À partir de la page d'accueil:
Voici quelques exemple de sortie d'un MP4 prises sur mon Nokia N95:
OriginalL'auteur Stu Thompson
Court de regarder toutes les vidéos, il n'y a pas "parfait" façon de le faire.
Les fichiers vidéo sont assez robuste comme une expérience, j'ai pris un hasard vidéo MPEG-4 fichier ouvert dans un éditeur hexadécimal et à commencé à changer octets..
mplayer
et Quicktime encore joué, il est de retour sans erreurs.J'ai dû supprimer des milliers d'octets avant d'obtenir une erreur de mplayer:
Il ne serait pas difficile d'écrire un script qui s'exécute
mplayer
sur chaque vidéo, et vérifie la sortie pour les messages d'erreur/avertissements, mais à moins que la changé d'octets dans le fichier d'en-tête, ou un lot de données a été modifié, vous ne serez jamais trouver tous lesOriginalL'auteur dbr
Que mplayer a des options de de convertir d'un format vidéo à un autre qui pourrait être assez bon pour un test en supposant que mencoder renvoie une erreur si il ne peut pas décoder le fichier d'entrée (je ne l'ai pas testée). Ce serait un travail semblable à la image test vous avez mentionné (convertir image.jpg /tmp/test.png)
Digulla Le lien que j'ai fournis ci-dessus mentionne "mencoder <nom de fichier.avi> -ovc lavc -oac lavc -o <sortie.avi>". Pas sûr si cela fonctionne avec les fichiers d'entrée. Vous pourriez avoir à expérimenter.
OriginalL'auteur lothar
Je vous recommande d'utiliser sha1sum, un outil de ligne de commande que vous avez probablement déjà (et si non, vous avez probablement aussi md5sum, qui serait parfait pour ce travail)... Tout ce que vous devez faire est de comparer le stdout de sha1sum avant et après la restauration...
OriginalL'auteur dicroce