3 votes

Extraire les sous-titres fermés (CC) du fichier .mkv entrelacé dans le flux vidéo

Sortie vidéo :

ffmpeg -i output.mkv

Entrée #0, matroska,webm, depuis 'output.mkv' :

Métadonnées :

encodeur : libebml v1.3.6 + libmatroska v1.4.9

temps de création : 2018-08-31T06:43:45.000000Z

Durée : 00:42:51.03, début : 0.000000, débit : 1928 kb/s

Flux #0:0 : Vidéo : h264 (Main), yuv420p(progressif), 960x540 [SAR 1:1 DAR 16:9], Sous-titres codés, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (par défaut)

En utilisant ceci :

"ffmpeg" -f lavfi -i "movie=output.mkv[out0+subcc]" -map s "output_map-s.srt"

Je peux extraire le (CC) mais avec des codes de temps et des balises étranges.

1 00:00:00,019 --> 00:00:00,051 {\an7}dialogue

2 00:00:00,052 --> 00:00:00,134 {\an7}dialogue

3 00:00:00,135 --> 00:00:00,161 {\an7}dialogue

4 00:00:00,163 --> 00:00:00,178 {\an7}dialogue

5 00:00:00,179 --> 00:00:00,194 {\an7}dialogue

6 00:00:00,220 --> 00:00:00,246 {\an7}dialogue

7 00:00:00,272 --> 00:00:00,296 {\an7}-dialogue

Quelle serait la phrase correcte pour extraire (CC) synchronisés.

Merci.

1voto

Cesar Moore Points 111

Cela a fonctionné pour moi, N est l'index du sous-titre en commençant par 0 :

ffmpeg -hide_banner -i myfile.mkv -map 0:s:N subtiles_N.srt

1voto

user1028939 Points 11

J'ai eu le même problème, ma solution la plus simple a été d'utiliser Handbrake pour le convertir en MP4 et lui dire d'ajouter les CC en tant que sous-titre.

Plusieurs outils ont ensuite une méthode facile pour extraire le sous-titre du MP4 dans un fichier texte SRT.

C'est une solution de contournement, mais mon lecteur multimédia refuse catégoriquement de lire les sous-titres intégrés et ne veut que des srt avec le même nom que le fichier que je veux regarder.

1voto

Toutes les réponses ici semblent se référer à des flux de sous-titres (un flux de texte ou peut-être d'images dédié uniquement aux sous-titres). Ceux-ci peuvent être extraits de nombreuses façons, par exemple il suffit d'ouvrir le fichier avec "Subtitle edit" et vous pouvez extraire et manipuler directement les sous-titres texte ou convertir les sous-titres image en texte avec OCR et ensuite les modifier à votre guise. Mais les sous-titres codés (CC) sont une autre bête. Les sous-titres codés sont des sous-titres texte intégrés dans le flux vidéo, à l'époque de la télévision diffusée en direct, le signal analogique était affiché ligne par ligne sur l'écran CRT par un faisceau d'électrons réel qui balayait physiquement l'écran ligne par ligne, une fois en bas, il remontait en haut de l'écran et cela prenait du temps. Pendant cet intervalle, une modulation était utilisée pour envoyer un signal qui n'était pas affiché (puisque le faisceau d'électrons retournait à la position de départ), ce signal encodait des informations textuelles qui étaient décodées comme des sous-titres. Ces données CC peuvent encore être intégrées dans la partie vidéo des fichiers numériques que nous utilisons aujourd'hui, et certains outils peuvent les décoder, par exemple VLC peut les afficher, ffmpeg peut y accéder (par exemple en utilisant "ffmpeg" -f lavfi -i "movie=output.mkv[out0+subcc]" -map s "output_map-s.srt" comme le montre la question originale). Je connais un autre outil qui peut les extraire vers des fichiers SRT (ou d'autres formats) avec des codes temporels corrects, c'est CCExtractor, programmé par CFSMP3, mais c'est un outil très exigeant qui nécessite un certain effort pour le maîtriser et obtenir des résultats

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X