Opened 12 years ago
Last modified 9 years ago
#1482 open enhancement
Support eia_608 in wtv
Reported by: | ramitb | Owned by: | |
---|---|---|---|
Priority: | wish | Component: | avformat |
Version: | git-master | Keywords: | cc wtv |
Cc: | Anshul | Blocked By: | |
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
Summary of the bug: When extracing subtitles in SRT format FFMPEG creates a file but it is an illegible format.
The link to the original file (too big to attach)
http://www.mediafire.com/?dnvw6m61mky8pea
Attaching the output file created
How to reproduce:
COMMAND:
ffmpeg -i srt.ts -an -vn -scodec copy -copyinkf -f srt sub.srt
ffmpeg version N-41578-ga5c1a0c Copyright (c) 2000-2012 the FFmpeg developers built on Jun 13 2012 22:34:53 with gcc 4.6.3 configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-runtime-cpudetect --enable-avisynth --enab le-bzlib --enable-frei0r --enable-libass --enable-libcelt --enable-libopencore-amrnb --enable-libopencore-amrwb --enable -libfreetype --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libopenjpeg --enable-librtmp --enable-libschro edinger --enable-libspeex --enable-libtheora --enable-libutvideo --enable-libvo-aacenc --enable-libvo-amrwbenc --enable- libvorbis --enable-libvpx --ena libavutil 51. 58.100 / 51. 58.100 libavcodec 54. 25.100 / 54. 25.100 libavformat 54. 6.101 / 54. 6.101 libavdevice 54. 0.100 / 54. 0.100 libavfilter 2. 79.100 / 2. 79.100 libswscale 2. 1.100 / 2. 1.100 libswresample 0. 15.100 / 0. 15.100 libpostproc 52. 0.100 / 52. 0.100 [mpegts @ 002dbd00] max_analyze_duration 5000000 reached at 5000000 [NULL @ 02b171c0] start time is not set in estimate_timings_from_pts Input #0, mpegts, from 'srt.ts': Duration: 00:01:38.16, start: 0.151678, bitrate: 4310 kb/s Program 1 Stream #0:0[0x30]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p, 720x576 [SAR 64:45 DAR 16:9], 15000 kb /s, 25 fps, 25 tbr, 90k tbn, 50 tbc Stream #0:1[0x40](eng): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16, 256 kb/s Stream #0:2[0x50](eng): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006) Output #0, srt, to 'sub.srt': Metadata: encoder : Lavf54.6.101 Stream #0:0(eng): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006) Stream mapping: Stream #0:2 -> #0:0 (copy) Press [q] to stop, [?] for help size= 113kB time=00:01:37.25 bitrate= 9.5kbits/s video:0kB audio:0kB global headers:0kB muxing overhead inf% Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)
Attachments (1)
Change History (31)
by , 12 years ago
comment:1 by , 12 years ago
follow-up: 3 comment:2 by , 12 years ago
Okay thanks.
How did you know it's a image and not text?
Reason I'm asking, I tried a different file - a WTV file which has Closed Captions (I'm able to extract them using CCExtractor after converting it to a TS file).
When I try to use FFMPEG wtih teh WTV file, here's the error I get:
ffmpeg -i "..\NCIS HD.wtv" -an -vn -scodec copy -copyinkf -f srt sub.srt
ffmpeg version N-41843-gc17808c Copyright (c) 2000-2012 the FFmpeg developers built on Jun 22 2012 17:40:07 with gcc 4.7.1 configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-runtime-cpudetect --enable-avisynth --enab le-bzlib --enable-frei0r --enable-libass --enable-libcelt --enable-libopencore-amrnb --enable-libopencore-amrwb --enable -libfreetype --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libopenjpeg --enable-librtmp --enable-libschro edinger --enable-libspeex --enable-libtheora --enable-libutvideo --enable-libvo-aacenc --enable-libvo-amrwbenc --enable- libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib libavutil 51. 61.100 / 51. 61.100 libavcodec 54. 29.100 / 54. 29.100 libavformat 54. 11.100 / 54. 11.100 libavdevice 54. 0.100 / 54. 0.100 libavfilter 2. 82.100 / 2. 82.100 libswscale 2. 1.100 / 2. 1.100 libswresample 0. 15.100 / 0. 15.100 libpostproc 52. 0.100 / 52. 0.100 [mpeg2video @ 01d77800] mpeg_decode_postinit() failure Last message repeated 10 times Input #0, wtv, from '..\NCIS HD.wtv': Metadata: WM/MediaClassPrimaryID: db9830bd-3ab3-4fab-8a371a995f7ff74 WM/MediaClassSecondaryID: ba7f258a-62f7-47a9-b21f4651c42a000 Title : NCIS: Los Angeles WM/SubTitle : Sacrifice WM/SubTitleDescription: The LAPD asks NCIS for help when a case exposes a link between a Mexican drug cartel and a t errorist. genre : Drama;General;Series;Action/Adventure WM/OriginalReleaseTime: 0 WM/MediaCredits : Chris O'Donnell/LL Cool J/Linda Hunt/Daniela Ruah/Eric Christian Olsen/Barrett Foa/Renée Felice S mith;John P. Kousakis;;America Olivo/Brant Cotton/Doug Rao/Danny Nucci/Gino Montesinos/Farshad Farahat/Carlos Arellano/C heryl Texiera/Brian Michael Jones/Jen service_provider: KPHODT service_name : KPHODT (KPHO-DT) WM/MediaNetworkAffiliation: CBS Affiliate WM/MediaOriginalChannel: 5 WM/MediaOriginalChannelSubNumber: 1 WM/MediaOriginalBroadcastDateTime: 2011-10-18T07:00:00Z WM/MediaOriginalRunTime: 38375940244 WM/MediaIsStereo: true WM/MediaIsRepeat: false WM/MediaIsLive : false WM/MediaIsTape : false WM/MediaIsDelay : false WM/MediaIsSubtitled: false WM/MediaIsMovie : false WM/MediaIsPremiere: false WM/MediaIsFinale: false WM/MediaIsSAP : false WM/MediaIsSport : false WM/ParentalRating: TV-14 WM/Provider : MediaCenterDefault WM/VideoClosedCaptioning: true WM/WMRVEncodeTime: 2011-10-19 03:00:02 WM/WMRVSeriesUID: !MCSeries!01158361 WM/WMRVServiceID: !MCService!28455624 WM/WMRVProgramID: !MCProgram!264522248 WM/WMRVRequestID: 0 WM/WMRVScheduleItemID: 0 WM/WMRVQuality : 3 WM/WMRVOriginalSoftPrePadding: 420 WM/WMRVOriginalSoftPostPadding: 180 WM/WMRVHardPrePadding: -300 WM/WMRVHardPostPadding: 0 WM/WMRVATSCContent: true WM/WMRVDTVContent: true WM/WMRVHDContent: true Duration : 36582312388 WM/WMRVEndTime : 2011-10-19 04:01:00 WM/WMRVBitrate : 12.738619 WM/WMRVKeepUntil: 0 WM/WMRVActualSoftPrePadding: 297 WM/WMRVActualSoftPostPadding: 0 WM/WMRVContentProtected: false WM/WMRVContentProtectedPercent: 0 WM/WMRVExpirationSpan: 9223372036854775807 WM/WMRVInBandRatingSystem: 255 WM/WMRVInBandRatingLevel: 255 WM/WMRVInBandRatingAttributes: 0 WM/WMRVWatched : false WM/MediaThumbWidth: 352 WM/MediaThumbHeight: 198 WM/MediaThumbStride: 1056 WM/MediaThumbRet: 0 WM/MediaThumbRatingSystem: 255 WM/MediaThumbRatingLevel: 255 WM/MediaThumbRatingAttributes: 0 WM/MediaThumbAspectRatioX: 16 WM/MediaThumbAspectRatioY: 9 WM/MediaThumbTimeStamp: 4634350287386204132 WM/MediaThumbType: 3 Duration: 01:00:57.28, start: 1.797444, bitrate: 12741 kb/s Stream #0:0[0xe](eng): Audio: ac3, 48000 Hz, 5.1(side), s16, 384 kb/s Stream #0:1[0xf](eng): Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s Stream #0:2[0x10]: Video: mpeg2video (Main), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 38810 kb/s, 57.22 fps, 29.97 tbr , 10000k tbn, 59.94 tbc Stream #0:3[0x11]: Subtitle: dvb_teletext Stream #0:4[0x0]: Attachment: mjpeg Metadata: title : TV Thumbnail [srt @ 033150e0] Unsupported subtitles codec: dvb_teletext Output #0, srt, to 'sub.srt': Metadata: WM/MediaClassPrimaryID: db9830bd-3ab3-4fab-8a371a995f7ff74 WM/MediaClassSecondaryID: ba7f258a-62f7-47a9-b21f4651c42a000 Title : NCIS: Los Angeles WM/SubTitle : Sacrifice WM/SubTitleDescription: The LAPD asks NCIS for help when a case exposes a link between a Mexican drug cartel and a t errorist. genre : Drama;General;Series;Action/Adventure WM/OriginalReleaseTime: 0 WM/MediaCredits : Chris O'Donnell/LL Cool J/Linda Hunt/Daniela Ruah/Eric Christian Olsen/Barrett Foa/Renée Felice S mith;John P. Kousakis;;America Olivo/Brant Cotton/Doug Rao/Danny Nucci/Gino Montesinos/Farshad Farahat/Carlos Arellano/C heryl Texiera/Brian Michael Jones/Jen service_provider: KPHODT service_name : KPHODT (KPHO-DT) WM/MediaNetworkAffiliation: CBS Affiliate WM/MediaOriginalChannel: 5 WM/MediaOriginalChannelSubNumber: 1 WM/MediaOriginalBroadcastDateTime: 2011-10-18T07:00:00Z WM/MediaOriginalRunTime: 38375940244 WM/MediaIsStereo: true WM/MediaIsRepeat: false WM/MediaIsLive : false WM/MediaIsTape : false WM/MediaIsDelay : false WM/MediaIsSubtitled: false WM/MediaIsMovie : false WM/MediaIsPremiere: false WM/MediaIsFinale: false WM/MediaIsSAP : false WM/MediaIsSport : false WM/ParentalRating: TV-14 WM/Provider : MediaCenterDefault WM/VideoClosedCaptioning: true WM/WMRVEncodeTime: 2011-10-19 03:00:02 WM/WMRVSeriesUID: !MCSeries!01158361 WM/WMRVServiceID: !MCService!28455624 WM/WMRVProgramID: !MCProgram!264522248 WM/WMRVRequestID: 0 WM/WMRVScheduleItemID: 0 WM/WMRVQuality : 3 WM/WMRVOriginalSoftPrePadding: 420 WM/WMRVOriginalSoftPostPadding: 180 WM/WMRVHardPrePadding: -300 WM/WMRVHardPostPadding: 0 WM/WMRVATSCContent: true WM/WMRVDTVContent: true WM/WMRVHDContent: true Duration : 36582312388 WM/WMRVEndTime : 2011-10-19 04:01:00 WM/WMRVBitrate : 12.738619 WM/WMRVKeepUntil: 0 WM/WMRVActualSoftPrePadding: 297 WM/WMRVActualSoftPostPadding: 0 WM/WMRVContentProtected: false WM/WMRVContentProtectedPercent: 0 WM/WMRVExpirationSpan: 9223372036854775807 WM/WMRVInBandRatingSystem: 255 WM/WMRVInBandRatingLevel: 255 WM/WMRVInBandRatingAttributes: 0 WM/WMRVWatched : false WM/MediaThumbWidth: 352 WM/MediaThumbHeight: 198 WM/MediaThumbStride: 1056 WM/MediaThumbRet: 0 WM/MediaThumbRatingSystem: 255 WM/MediaThumbRatingLevel: 255 WM/MediaThumbRatingAttributes: 0 WM/MediaThumbAspectRatioX: 16 WM/MediaThumbAspectRatioY: 9 WM/MediaThumbTimeStamp: 4634350287386204132 WM/MediaThumbType: 3 encoder : Lavf54.11.100 Stream #0:0: Subtitle: dvb_teletext Stream mapping: Stream #0:3 -> #0:0 (copy) Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
comment:3 by , 12 years ago
Replying to ramitbhalla:
How did you know it's a image and not text?
Your copy-pasted console output had:
Stream #0:2[0x50](eng): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
dvb_subtitle
is a bitmap codec.
Reason I'm asking, I tried a different file - a WTV file which has Closed Captions (I'm able to extract them using CCExtractor after converting it to a TS file).
When I try to use FFMPEG wtih teh WTV file, here's the error I get:
Stream #0:3[0x11]: Subtitle: dvb_teletext [srt @ 033150e0] Unsupported subtitles codec: dvb_teletext
That is normal with the current state of affairs, but it may be possible to enhance it. Can you point me to a file with such a track? It does not need to be big, just a few subtitles exchanges would be enough.
follow-up: 5 comment:4 by , 12 years ago
The file is uploaded at:
http://www.mediafire.com/?8p2xgb7navf7m1b
comment:5 by , 12 years ago
Replying to ramitbhalla:
The file is uploaded at:
http://www.mediafire.com/?8p2xgb7navf7m1b
Which application shows subtitles for this sample (and when)?
comment:6 by , 12 years ago
Okay the app name is CCExtractor (it' a free CLI/GUI app) - just run with GUI and default settings.
Before you can get CCExtractor to work on it you need to convert it to MPEGTS
I use FFMPEG -i ncis.ts -vcodec copy -acodec copy -scodec copy ncis.ts
Then CCExtractor will take out the subtitles and store them as a SRT file
comment:7 by , 12 years ago
One more problem I've seen (in the same wtv file above). when using the ffmpeg command to copy the subtitle stream it converts the subtitles from dvb_teletext to dvb_subtitle (from text to image if I understand correct).
Is that normal? Shouldn' it preserve the teletext stream?
e.g. ffmpeg -i ncis.wtv
Duration: 00:31:59.52, start: 1.797444, bitrate: 874 kb/s Stream #0:0[0xe](eng): Audio: ac3, 48000 Hz, 5.1(side), s16, 384 kb/s Stream #0:1[0xf](eng): Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s Stream #0:2[0x10]: Video: mpeg2video (Main), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 38810 kb/s, 57.22 fps, 29.97 tbr , 10000k tbn, 59.94 tbc Stream #0:3[0x11]: Subtitle: dvb_teletext Stream #0:4[0x0]: Attachment: mjpeg
After stream copying to TS, ffmpeg -i ncis.ts
Stream #0:0[0x100](eng): Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz, 5.1(side), s16, 384 kb/s Stream #0:1[0x101](eng): Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz, stereo, s16, 192 kb/s Stream #0:2[0x102]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 38810 k b/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc Stream #0:3[0x103](eng): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
comment:8 by , 12 years ago
Hi any thoughts on this?
also can you please let me know what's the correct command for ffmpeg to extract the bitmap subtitles from a TS stream (svb_subtitle) into a subtitle image format (.sup)?
comment:9 by , 12 years ago
I have several problems with this issue:
First of all, in your WTV file, none of the subtitles packets have the keyframe flag. As a consequence, -scodec copy
does not copy anything. And with -copyinkf:s
, I get the infamous non monotonically increasing dts
.
Second, if I remux only the video, not the subtitles, then ccextractor
sees the subtitles in the resulting TS file. That means that the CC subtitles are not in fact in the subtitle stream but in the video stream. I do not know whether that is normal or whether the WTV demuxer is at fault.
comment:10 by , 12 years ago
- Any solution how to handle this? I'm getting the same issues with another TS file recording. If you'd like I can upload that that too
- That I believe is normal, the CC is embedded as part of the video, which is why when FFMPEG "recodes" the video (not copy) it loses the CC stream. CCExtractor extracts the CC directly from the video stream. Can FFMPEG also do it?
I'm more interested in 1, since that's where most of the non US/international subtitles exist. This is the standard MCE recording format that I've uploaded
follow-up: 12 comment:11 by , 12 years ago
NCIS.wtv is an interesting file:
- stream 0 & 1 contain AC3 audio (one for visual impaired persons)
- stream 2, which WTV reports as video, also contains
Subtitles
MP2 audio
SDT metadata
WTV clearly marks the stream as video. Just a a guess, this probably the fault of the broadcaster.
- stream 3 has DVB_TELETEXT encoded subtitles. FFmpeg doesnt have the capability to decode teletext at present.
comment:12 by , 12 years ago
Keywords: | cc added |
---|---|
Version: | unspecified → git-master |
Replying to pross:
- stream 3 has DVB_TELETEXT encoded subtitles. FFmpeg doesnt have the capability to decode teletext at present.
It is supposed to work with mplayer -demuxer lavf -sid 0 (pressing "X") but MPlayer claims there is no actual teletext data transmitted.
comment:13 by , 12 years ago
Correction:
Stream 3 of the NCIS.wtv actually contains EIA-608/Line 21 subtitles.
FFmpeg doesnt have AV_CODEC_ID for this subtitle codec. It is reporting it as AV_CODEC_ID_DVB_TELETEXT, hence why Mplayer fails to decode it.
comment:14 by , 12 years ago
Why are you claiming that? FFmpeg does have CODEC_ID_EIA_608 which is supported both in MOV and MXF.
comment:15 by , 12 years ago
MPlayer shows still no subtitles if I change AV_CODEC_ID_DVB_TELETEXT to AV_CODEC_ID_EIA_608 in ffmpeg/libavformat/wtvdec.c.
diff --git a/libavformat/wtvdec.c b/libavformat/wtvdec.c index 2999382..f879d21 100644 --- a/libavformat/wtvdec.c +++ b/libavformat/wtvdec.c @@ -695,7 +695,7 @@ static AVStream * parse_media_type(AVFormatContext *s, AVStream *st, int sid, if (ff_guidcmp(formattype, ff_format_none)) av_log(s, AV_LOG_WARNING, "unknown formattype:"FF_PRI_GUID"\n", FF_ARG_GUID(formattype)); avio_skip(pb, size); - st->codec->codec_id = AV_CODEC_ID_DVB_TELETEXT; + st->codec->codec_id = AV_CODEC_ID_EIA_608; return st; } else if (!ff_guidcmp(mediatype, mediatype_mpeg2_sections) && !ff_guidcmp(subtype, mediasubtype_mpeg2_sections)) {
comment:16 by , 12 years ago
Not surprising, since I can't find anything that looks like EIA-608 in the file.
They might be using yet another format, but since the string "GA94" exists in the file I'd expect that it rather uses EIA-708.
However I haven't check which stream that EIA-708 data is part of, it really should be embedded in the video stream which would then still leave open what that subtitle stream actually contains.
comment:17 by , 12 years ago
The subtitles in the third stream are text-based as can be seen with:
$ ffmpeg -i NCIS.wtv -vn -an -scodec copy -f rawvideo out
$ hexdump -C out
Shouldn't MPlayer show the "GA94" subtitles in the video stream?
(mplayer NCIS.wtv -dumpvideo && grep GA94 stream.dump)
comment:18 by , 12 years ago
EIA-608 does not give plain-text, in particular since the highest bit is a parity bit, plus every third "character" is a control byte.
And while I have a patch for EIA-708 in MPlayer it is not committed since it cannot work. The data needs to be reordered in the same way that the frames are during decoding, and that is a mess to implement.
comment:19 by , 12 years ago
A far larger sample size will be needed to reverse-engineer this format properly, but for reference below hack to MPlayer makes it mostly display correctly (using -sid 0 -subcc 1).
However how the whole rollup, rollon, number of lines etc. pp. is encoded in the format is still quite unclear to me.
Index: sub/sub_cc.c =================================================================== --- sub/sub_cc.c (revision 35108) +++ sub/sub_cc.c (working copy) @@ -376,11 +381,26 @@ void subcc_process_data(const uint8_t *inputdata, unsigned int len) { + int newline = 0; int mov_mode = len >= 10 && memcmp(inputdata, mov_cc_signature_1, sizeof(mov_cc_signature_1)) == 0; if(!subcc_enabled) return; if(!initialized) subcc_init(); + cc_mode = CC_ROLLUP; + if (len < 2) return; + newline = (inputdata[1] & 0xf0) == 0x30; + inputdata += 2; + len -= 2; + channel = 0; + while (len >= 2 && (inputdata[0] & 0x60)) { + cc_decode_EIA608(inputdata[0] | (inputdata[1] << 8)); + if (!(inputdata[1] & 0x60)) break; + inputdata += 2; + len -= 2; + } + if (newline) append_char('\n'); + return; if (mov_mode) { mov_subcc_decode(inputdata, len); return;
comment:20 by , 12 years ago
(Committing the patches will lead to more samples imo.)
A longer sample that I believe produces not entirely correctly subtitles with mplayer -sid 1 -subcc 1 is at samples/ffmpeg-bugs/trac/ticket1065/Test1.wtv (It btw does not show subtitles with mplayer -sid 0 that ffplay shows.)
comment:21 by , 12 years ago
Hi reimar & cehoyos. You are right, I got 608 and 708 confused, nonetheless, both CEA-708 and EIA-608 subtitles are present in the file.
- NCIS.wtv, Stream 3. Subtitles are stored using CEA-708. By no coindicence, the stream type guid is MEDIASUBTYPE_DTVCCDATA. Most packets in the stream correspond to a CEA-708 DTVCCDATA packet (described in the CEA-708 standard). There are also many 2-byte packets, which seem out of place; perhaps they are frame counters or checksums added by Microsoft.
- NCIS.wtv, Stream 1. If you copy this stream into TS format, the CCextractor program will extract subtitles from it. The subtitles within Stream 1 are in EIA-608 format.
I have uploaded two more .wtv samples to /incoming/wtv_dtvccdata.
comment:22 by , 12 years ago
@cehoyos
samples/ffmpeg-bugs/trac/ticket1065/Test1.wtv contains mediatype_mstvcaption packets
Currently FFmpeg interprets both 'mediatype_mstvcaption' and 'mediasubtype_dtvccdata' as AVCODEC_ID_DVB_TELETEXT (see extract from wtvdec.c below). That now looks to be wrong.
mediasubtype_dtvccdata is a variant of CEA-708.
mediatype_mstvcaption is something different again. Another proprietary format, perhaps.
---wtvdec.c
} else if (!ff_guidcmp(mediatype, mediatype_mstvcaption) && !ff_guidcmp(subtype, mediasubtype_dtvccdata)) {
st = new_stream(s, st, sid, AVMEDIA_TYPE_SUBTITLE);
if (!st)
return NULL;
if (ff_guidcmp(formattype, ff_format_none))
av_log(s, AV_LOG_WARNING, "unknown formattype:"FF_PRI_GUID"\n", FF_ARG_GUID(formattype));
avio_skip(pb, size);
st->codec->codec_id = AV_CODEC_ID_DVB_TELETEXT;
return st;
---wtvdec.c
comment:23 by , 12 years ago
Concerning Test1.wtv: a fix for the DVB subs is sent.
The other subtitle stream is indeed teletext, in 3/4ths processed form, as this hack shows:
Index: mpcommon.c =================================================================== --- mpcommon.c (revision 35108) +++ mpcommon.c (working copy) @@ -276,6 +276,15 @@ if (type == 'd') { if (d_dvdsub->demuxer->teletext) { uint8_t *p = packet; + teletext_control(d_dvdsub->demuxer->teletext, + TV_VBI_CONTROL_RESET, NULL); +while (len >= 42) { + teletext_control(d_dvdsub->demuxer->teletext, + TV_VBI_CONTROL_DECODE_DVB, p); + p += 42; + len -= 42; +} +return; p++; len--; while (len >= 46) {Index: libmpcodecs/dec_teletext.c =================================================================== --- libmpcodecs/dec_teletext.c (revision 35108) +++ libmpcodecs/dec_teletext.c (working copy) @@ -1546,11 +1546,12 @@ uint8_t data[42]; mp_msg(MSGT_TELETEXT,MSGL_DBG3, "vbi: vbi_decode_dvb\n"); +memcpy(data, buf, 42); /* Reverse bit order, skipping the first two bytes (field parity, line offset and framing code). */ - for (i = 0; i < sizeof(data); i++) - data[i] = av_reverse[buf[2 + i]]; +// for (i = 0; i < sizeof(data); i++) +// data[i] = av_reverse[buf[2 + i]]; vbi_decode_line(priv, data); if (priv->cache_reset) @@ -1683,6 +1684,8 @@ priv_vbi_t* priv=(priv_vbi_t*)p; tt_page* pgc; +if (cmd == TV_VBI_CONTROL_RESET) + clear_cache(priv); if (!priv && cmd!=TV_VBI_CONTROL_START) return VBI_CONTROL_FALSE; if (!arg && cmd!=TV_VBI_CONTROL_STOP && cmd!=TV_VBI_CONTROL_MARK_UNCHANGED)
However all those formats are just slightly off from the standard format that I just don't know what to do about it.
Should the demuxer convert them? Should it be a different codec? Should there be some auto-detection?
Some extradata to mark them?
comment:24 by , 12 years ago
The subtitles within Stream 1 are in EIA-608 format.
mediasubtype_dtvccdata is a variant of CEA-708.
Could you please be more specific and/or quote some specification?
For all variants I know, the CC data consists of 3 byte packages with one (kind of) control and two data.
Those subtitle streams however have long sequences of only data bytes (text and probably EIA-708 control codes).
And those first two mystery bytes are at least a concern.
comment:25 by , 12 years ago
So it looks like:
1) the 2-byte packets are the EIA-608 compatibility packets
2) the longer packets always start with a packet that has been a DTVCC_PACKET_START and then continues with all that have been DTVCC_PACKET_DATA after that
In both cases, the data is unchanged compared to what is in the MPEG file except that any and all header and filler and control data (like packet_start vs. packet_data markers) has been removed
comment:26 by , 12 years ago
@reimar.
This standard: http://apps.fcc.gov/ecfs/comment/view;jsessionid=Hy6KP9KJLPgvLv1LqJ5QvkJDG8jLXyH0yvztjM7nJ0G5yPXpmCZW!-1221852939!-1969853125?id=5003806575.
As to what do to, I dont know either. The demuxer is probably best placed to deal with it, since it just involves inserting additional control codes.
comment:28 by , 11 years ago
Component: | undetermined → avformat |
---|---|
Keywords: | wtv added |
Priority: | normal → wish |
Status: | new → open |
Summary: | FFMPEG fails to create a SRT file when extracting Subtitles → Support eia_608 in wtv |
Type: | defect → enhancement |
comment:29 by , 9 years ago
Cc: | added |
---|
Anshul, could you look at this sample?
http://samples.ffmpeg.org/ffmpeg-bugs/trac/ticket1482/
Timestamps for the Closed Captions are wrong, the Closed Captions play too slow: Four minutes instead of 20 seconds.
Please check with latest Git head before submitting a bug report. The issue your are reporting has been fixed two days ago.
That does not mean your command will work: it can not, as subtitles in your MPEG-TS file are images and ffmpeg does not implement an OCR system. But at least it will fail with a clear message: