Ich benutze derzeit ffmpeg, um Videos in verschiedenen Formaten in FLV-Dateien zu konvertieren. Eine Anfrage ist ebenfalls eingegangen und das ist, um Informationen über Untertitel aus der Datei zu erhalten. Hat jemand irgendwelche Erfahrungen damit oder weiß, dass es sogar getan werden kann. Ich sehe keine Optionen dafür, dachte aber, ich würde fragen und sehen.Kann ffmpeg extrahieren Untertitel Daten
Antwort
Wenn die Beschriftung als separater Strom enthalten sind, dann Extrahieren sie ist (relativ) einfach:
ffmpeg -i input.mov -an -vn -c:s copy -f rawvideo -map 0:s sub.txt
Wenn es auf der Video-Datei „eingebrannt“ ist, dann sind Sie wahrscheinlich kein Glück, aber ich würde das häufiger für Untertitel als Untertitel tun.
Für nur die Untertitel bekommen und keine Meta-Junk, ich habe das für mich
ffmpeg -i input.mov -an -vn -bsf:s mov2textsub -scodec copy -f rawvideo sub.txt
funktioniert am besten gefunden.
Closed Captions sind keine separaten Streams, noch sind sie in das Bild eingebrannt, sie sind in Scanlines im Bild interlaced - das ist eine seltsame amerikanische Idee, nicht wirklich an anderer Stelle verwendet. Obwohl Sie DVDs kaufen können, die diese Art von Untertitel haben, können Leute außerhalb der USA die Untertitel normalerweise nicht sehen und wissen vielleicht nicht einmal, dass einige in der Datei sind.
CCExtractor diese Informationen von VOB des extrahieren kann, indem man die TS-Metadaten suchen: http://ccextractor.sourceforge.net/
erscheint, dass für ATSC-Streams die Beschriftungen irgendwie "enthalten aber getrennt" sind und keine Bilder sind, also extrahierbar sind, siehe Anshuls Antwort. Nun, wenn ffmpeg sie "überlagern" kann und sie brennen, nicht sicher, aber zumindest Extraktion ist möglich ... – rogerdpack
Untertitel sind von 2-Format
1) ATSC amerikanischen Standard (Unterstützung gibt es in ffmpeg)
2) ISDB japanischen Standard (Unterstützung ist noch nicht da in ffmpeg)
Sie verwenden können, folgenden Befehl
ffmpeg -f lavfi -i "movie=test.ts[out0+subcc]" -map s output.srt
Dieses Ding wurde vor kurzem entwickelt, also überprüfen Sie bitte Ihre Version von ffmpeg.
Danke für die Entwicklung dieses Patches! – tmm1
Wenn jemand, wie ich, auf diesem Thread endet, hier ist ein bisschen detailliertere Erklärung auf ffmpeg
Befehl, der für mich arbeitete.
ffmpeg -f lavfi -i movie=input.ts[out+subcc] -map 0:1 output.srt
Es scheint eine harte Anforderung an Quelle mpegts
Format (Dateierweiterung .ts
) zu sein. Ansonsten scheint der lavfi
Filter nicht zu funktionieren. Die Spezifikation out+subcc
zwingt ffmpeg, geschlossene Untertitel (die in Rahmendaten eingebettet sind) als separaten Stream zu behandeln. Später -map 0:1
macht ffmpeg
nur diesen Stream zuordnen und alles andere verwerfen. Das Ergebnis wird unter output.srt
gespeichert. Abhängig von Ihrer Eingabe kann das Mapping unterschiedlich sein. Eine einfache Möglichkeit, die untertitel Mapping, um herauszufinden, ist ffprobe
Befehl ausgeführt werden sollte, wie so
$ ffprobe -f lavfi -i movie=input.ts[out+subcc]
ffprobe version N-79653-g4efd3ec Copyright (c) 2007-2016 the FFmpeg developers
libavutil 55. 22.101/55. 22.101
libavcodec 57. 38.100/57. 38.100
libavformat 57. 34.103/57. 34.103
libavdevice 57. 0.101/57. 0.101
libavfilter 6. 44.100/6. 44.100
libswscale 4. 1.100/4. 1.100
libswresample 2. 0.101/2. 0.101
libpostproc 54. 0.100/54. 0.100
[h264 @ 0x7fe869826200] Increasing reorder buffer to 1
Input #0, lavfi, from 'movie=input.ts[out+subcc]':
Duration: N/A, start: 1562.233011, bitrate: N/A
Stream #0:0: Video: rawvideo (I420/0x30323449), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 90k fps, 30 tbr, 90k tbn
Stream #0:1: Subtitle: eia_608
Stream-Subtitle: eia_608
hat „index“ 0:1
, so das ist, was abgebildet werden soll.
Wenige Trennzeichen, Reihenfolge der Argumente zählt für ffmpeg
, -f lavfi
muss vor -i move=...
gehen, sonst wird die Spezifikation nicht erkannt. Auch diese Funktion ist ziemlich neu, also überprüfen Sie Ihre ffmpeg
Version und aktualisieren Sie sie bei Bedarf.
- 1. Wie Untertitel in ffmpeg Dekodierung deaktivieren
- 2. kein Video Untertitel Codec ffmpeg mit ändern
- 3. ffmpeg set Untertitel Spur als Standard
- 4. Ist es möglich, SubRip (SRT) Untertitel aus einem MP4 Video mit ffmpeg zu extrahieren?
- 5. R: Extrahieren Zeit von srt (Untertitel) Datei
- 6. So extrahieren Sie Closedcaptions/Untertitel von AVPlayer
- 7. Untertitel/Untertitel Unterstützung in Android
- 8. Was ist der beste Weg, Untertitel aus Filmdateien zu extrahieren?
- 9. VLCJ: Kann nicht Untertitel deaktivieren
- 10. RGB-Werte aus einem AVFrame (FFMPEG) extrahieren in C++
- 11. Chrome Untertitel
- 12. Extrahieren von Daten digital
- 13. Daten aus Zellenfeld extrahieren
- 14. Realm-Abfragen extrahieren Daten
- 15. Extrahieren der richtigen Daten?
- 16. So legen Sie benutzerdefinierte handler_name Metadaten für Untertitel Stream mit FFMPEG
- 17. , wie Bilder aus einer Videodatei zu extrahieren ffmpeg mit
- 18. FFMPEG: Dumping YUV Daten in AVFrame Struktur
- 19. Gstreamer Untertitel während der Aufnahme
- 20. DVD Untertitel Mit Vb6
- 21. VLCKit Untertitel nicht angezeigt
- 22. Toolbar Untertitel nicht
- 23. Extrahieren von Daten mit Text.JSON
- 24. Extrahieren von Daten aus .txt
- 25. Extrahieren von Daten aus JSON
- 26. extrahieren Daten von OLE strukturierten Daten
- 27. Kann nicht schreiben Header FFMPEG
- 28. Extrahieren von Daten in json
- 29. GPS-Daten vom Foto extrahieren
- 30. Einstellung SupportActionBar Untertitel mehrzeilige
Danke Heshy. Ich werde versuchen, es zu versuchen. Das Projekt ist jetzt weitergegangen, aber ich werde es notieren, wenn es zurückkommt. – spinon