2009-12-13 2 views
1

J'essaie d'extraire des sous-titres à partir de DVD non cryptés avec un programme, donc je peux les sauvegarder séparément. Je sais qu'il existe des programmes qui font cela (j'ai trouvé cette page par exemple: http://www.bunkus.org/dvdripping4linux/en/separate/subtitles.html), mais je voudrais pouvoir le faire avec un appel de bibliothèque ou quelque chose comme ça (libdvdread ou libdvdnav supportent cela), de préférence en utilisant ruby.Extrait les sous-titres de DVD par programme

Répondre

0

Je ne connais aucune bibliothèque, ce qui serait en mesure de le faire.

En ruby, vous pouvez appeler des programmes. Par exemple pour obtenir une liste de répertoires que vous pouvez faire

files= `ls "#{dir}"`.to_a 

La variante backtick vous donne la sortie standard du programme calle.

Pour en savoir wheter un fichier existe

system("ls \"#{file}\"") 

La variante system vous indique si la valeur de retour du programme appelé était 0. En utilisant ces deux méthodes, vous pouvez presque tout faire avec des programmes non interractibles. Les programmes décrits dans http://www.bunkus.org/dvdripping4linux/en/separate/subtitles.html sont appropriés pour ce type de contrôle.

Attention aux arguments d'échappement que vous donnez aux programmes externes. Si un argumend est "; rm -rf *; ls ". des choses indésirables peuvent arriver.

+1

Faites 'system (" ls ", fichier)' à la place pour éviter les attaques par injection. –

1

Vous pouvez voir Handbrake, il vous permet d'extraire vidéo, audio et sous-titres.

Il y a aussi le manuel Handbrake here, et la section des sous-titres here, qui peut fournir plus d'informations.

Ceci n'est pas dans Ruby mais vous devriez pouvoir appeler le CLI Handbrake de Ruby sans aucun problème.

+0

Veuillez ne pas utiliser le lien court lorsque vous souhaitez lier une ressource. Utilisez l'URL complète. – j0k

Questions connexes