Log in

View Full Version : MPlayer and EIA-608 closed captioning ?


cord-factor
17th December 2011, 14:32
Hello again,
I have MPEG-TS file (IPTV dump) with HDTV and subtitles. Here is mediainfo output:

General
ID : 1 (0x1)
Complete name : Projekt X 1987 HDTV 1080i.ts
Format : MPEG-TS
File size : 10.1 GiB
Duration : 1h 47mn
Overall bit rate : 13.5 Mbps
Maximum Overall bit rate : 35.5 Mbps

Video
ID : 4113 (0x1011)
Menu ID : 1 (0x1)
Format : MPEG Video
Format version : Version 2
Format profile : Main@High
Format settings, BVOP : Yes
Format settings, Matrix : Custom
Codec ID : 2
Duration : 1h 47mn
Bit rate mode : Variable
Bit rate : 12.2 Mbps
Nominal bit rate : 18.0 Mbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate : 29.970 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Compression mode : Lossy
Bits/(Pixel*Frame) : 0.197
Stream size : 9.16 GiB (91%)

Audio #1
ID : 4352 (0x1100)
Menu ID : 1 (0x1)
Format : AC-3
Format/Info : Audio Coding 3
Mode extension : CM (complete main)
Codec ID : 129
Duration : 1h 47mn
Bit rate mode : Constant
Bit rate : 192 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 KHz
Bit depth : 16 bits
Compression mode : Lossy
Stream size : 147 MiB (1%)
Language : Russian

Audio #2
ID : 4353 (0x1101)
Menu ID : 1 (0x1)
Format : AC-3
Format/Info : Audio Coding 3
Mode extension : CM (complete main)
Codec ID : 129
Duration : 1h 47mn
Bit rate mode : Constant
Bit rate : 384 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 KHz
Bit depth : 16 bits
Compression mode : Lossy
Stream size : 295 MiB (3%)
Language : English

Text #1
ID : 4113 (0x1011)-608-1
Menu ID : 1 (0x1)
Format : EIA-608
Muxing mode : A/53 / DTVCC Transport
Muxing mode, more info : Muxed in Video #1
Duration : 1h 47mn
Stream size : 0.00 Byte (0%)

Text #2
ID : 4113 (0x1011)-1
Menu ID : 1 (0x1)
Format : EIA-708
Muxing mode : A/53 / DTVCC Transport
Muxing mode, more info : Muxed in Video #1
Duration : 1h 47mn
Stream size : 0.00 Byte (0%)

Can I watch the subtitles somehow? I tried -subcc option with mplayer, but threre is no changes :confused:

microchip8
17th December 2011, 22:58
try with -sid and specify the sub ID number. You can get that number from mplayer when it shows the messages

Blue_MiSfit
18th December 2011, 00:08
VLC can play 608 captions as well, just as an aside.

cord-factor
18th December 2011, 10:30
try with -sid and specify the sub ID number. You can get that number from mplayer when it shows the messages

It doesn't show any.

MPlayer SVN-r33094-4.4.5 (C) 2000-2011 MPlayer Team

Playing Proekt X 1987 HDTV 1080i.ts.
TS file format detected.
VIDEO MPEG2(pid=4113) AUDIO A52(pid=4353) NO SUBS (yet)! PROGRAM N. 1
VIDEO: MPEG2 1920x1080 (aspect 3) 29.970 fps 18000.0 kbps (2250.0 kbyte/s)
Load subtitles in ./
Opening video filter: [screenshot]
Opening video filter: [eq2]
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffmpeg2] vfm: ffmpeg (FFmpeg MPEG-2)
==========================================================================
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
AUDIO: 48000 Hz, 2 ch, s16le, 384.0 kbit/25.00% (ratio: 48000->192000)
Selected audio codec: [ffac3] afm: ffmpeg (FFmpeg AC-3)
==========================================================================
AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample)
Starting playback...
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
[swscaler @ 0x33b2d38f4e0]using unscaled yuv420p -> rgb24 special converter
VO: [xv] 1920x1080 => 1920x1080 Planar YV12
A: 601.4 V: 601.4 A-V: 0.000 ct: 0.000 44/ 41 31% 4% 1.0% 1 0

demux_mpg: 24000/1001fps progressive NTSC content detected, switching framerate.
A: 604.0 V: 604.0 A-V: 0.000 ct: 0.000 105/102 30% 3% 0.9% 1 0

but why?


VLC can play 608 captions as well, just as an aside.
Yeah, it shows. Thank you.


ps Question about mplayer is open.

nm
18th December 2011, 13:27
Try -demuxer lavf with MPlayer.

cord-factor
18th December 2011, 15:58
Try -demuxer lavf with MPlayer.

Yes, but there is no any sid's either.

$ mplayer Proekt\ X\ 1987\ HDTV\ 1080i.ts -demuxer lavf -v
MPlayer SVN-r33094-4.4.5 (C) 2000-2011 MPlayer Team
CPU vendor name: AuthenticAMD max cpuid level: 5
CPU: AMD Phenom(tm) II X4 B45 Processor (Family: 16, Model: 5, Stepping: 3)
extended cpuid-level: 27
extended cache-info: 33587520
Detected cache-line size is 64 bytes
CPUflags: MMX: 1 MMX2: 1 3DNow: 1 3DNowExt: 1 SSE: 1 SSE2: 1 SSSE3: 0
Compiled for x86 CPU with extensions: MMX MMX2 3DNow 3DNowExt SSE SSE2 CMOV
get_path('codecs.conf') -> '/home/maa/.mplayer/codecs.conf'
Reading /home/maa/.mplayer/codecs.conf: Can't open '/home/maa/.mplayer/codecs.conf': No such file or directory
Reading /etc/mplayer/codecs.conf: Can't open '/etc/mplayer/codecs.conf': No such file or directory
Using built-in default codecs.conf.
init_freetype
Using MMX (with tiny bit MMX2) Optimized OnScreenDisplay
get_path('fonts') -> '/home/maa/.mplayer/fonts'
Configuration: --cc=x86_64-pc-linux-gnu-gcc --host-cc=x86_64-pc-linux-gnu-gcc --prefix=/usr --bindir=/usr/bin --libdir=/usr/lib64 --confdir=/etc/mplayer --datadir=/usr/share/mplayer --mandir=/usr/share/man --disable-svga --disable-svgalib_helper --disable-ass-internal --disable-arts --disable-kai --enable-networking --disable-joystick --disable-nemesi --disable-bl --disable-ftp --disable-fribidi --disable-inet6 --disable-libnut --disable-unrarexec --disable-smb --disable-lirc --disable-lircc --disable-apple-ir --disable-cdparanoia --disable-dvdread-internal --disable-libdvdcss-internal --charset=UTF-8 --disable-tv-bsdbt848 --disable-ivtv --disable-pvr --disable-tv-v4l1 --enable-radio --enable-radio-capture --disable-musepack --disable-libmpeg2-internal --disable-libbs2b --disable-libgsm --disable-liblzo --disable-librtmp --disable-libmpeg2 --disable-mad --disable-mpg123 --disable-pnm --disable-tga --disable-xanim --disable-libopenjpeg --disable-libvpx-lavc --codecsdir=/usr/lib64/codecs --disable-win32dll --disable-directfb --disable-md5sum --disable-sdl --disable-fbdev --disable-caca --disable-zr --disable-mga --disable-xmga --disable-3dfx --disable-tdfxvid --disable-tdfxfb --disable-xvr100 --disable-esd --disable-jack --disable-ladspa --disable-nas --disable-openal --disable-gui --disable-dxr3 --disable-ggi --disable-xinerama --disable-dga1 --disable-dga2 --enable-menu --disable-vdpau --disable-vesa --disable-vidix --disable-vidix-pcidb --disable-xvmc
CommandLine: 'Proekt X 1987 HDTV 1080i.ts' '-demuxer' 'lavf' '-v'
Using nanosleep() timing
get_path('input.conf') -> '/home/maa/.mplayer/input.conf'
Can't open input config file /home/maa/.mplayer/input.conf: No such file or directory
Parsing input config file /etc/mplayer/input.conf
Input config file /etc/mplayer/input.conf parsed: 92 binds
get_path('Proekt X 1987 HDTV 1080i.ts.conf') -> '/home/maa/.mplayer/Proekt X 1987 HDTV 1080i.ts.conf'

Playing Proekt X 1987 HDTV 1080i.ts.
get_path('sub/') -> '/home/maa/.mplayer/sub/'
[file] File size is 10852255632 bytes
STREAM: [file] Proekt X 1987 HDTV 1080i.ts
STREAM: Description: File
STREAM: Author: Albeu
STREAM: Comment: based on the code from ??? (probably Arpi)
LAVF_check: MPEG-2 transport stream format
libavformat file format detected.
==> Found video stream: 0
======= VIDEO Format ======
biSize 192
biWidth 1920
biHeight 1080
biPlanes 0
biBitCount 0
biCompression 843534413='MPG2'
biSizeImage 0
Unknown extra header dump: [0] [0] [1] [b3] [78] [4] [38] [34] [2b] [f2] [2f] [42] [10] [20] [20] [28] [28] [28] [2e] [2e] [2c] [2c] [34] [34] [3c] [38] [3c] [48] [48] [48] [44] [40] [44] [48] [46] [4a] [4a] [50] [52] [52] [62] [60] [60] [52] [4e] [52] [48] [4c] [54] [58] [58] [5c] [64] [64] [6c] [72] [6e] [68] [68] [62] [68] [86] [8a] [8a] [8a] [8a] [c8] [d2] [c8] [c8] [df] [2e] [df] [61] [61] [c5] [10] [11] [11] [15] [15] [15] [17] [17] [17] [17] [1d] [1d] [21] [1f] [21] [25] [25] [25] [23] [23] [23] [25] [26] [26] [26] [29] [2a] [2a] [31] [31] [31] [2a] [2a] [2a] [29] [29] [30] [30] [32] [32] [33] [33] [35] [37] [35] [34] [34] [34] [34] [3c] [3c] [3c] [3c] [3c] [5a] [5a] [5a] [5a] [6c] [6c] [6c] [7f] [7f] [a7] [0] [0] [1] [b5] [14] [42] [0] [1] [0] [0] [0] [0]
===========================
[lavf] stream 0: video (mpeg2video), -vid 0
==> Found audio stream: 1
======= WAVE Format =======
Format Tag: 8192 (0x2000)
Channels: 2
Samplerate: 48000
avg byte/sec: 24000
Block align: 1
bits/sample: 0
cbSize: 0
==========================================================================
[lavf] stream 1: audio (ac3), -aid 0, -alang rus
==> Found audio stream: 2
======= WAVE Format =======
Format Tag: 8192 (0x2000)
Channels: 2
Samplerate: 48000
avg byte/sec: 48000
Block align: 1
bits/sample: 0
cbSize: 0
==========================================================================
[lavf] stream 2: audio (ac3), -aid 1, -alang eng
LAVF: Program 1
LAVF: 2 audio and 1 video streams found
LAVF: build 3434240
VIDEO: [MPG2] 1920x1080 0bpp 59.940 fps 18000.0 kbps (2197.3 kbyte/s)
[V] filefmt:35 fourcc:0x3247504D size:1920x1080 fps:59.940 ftime:=0.0167
Load subtitles in ./
get_path('sub/') -> '/home/maa/.mplayer/sub/'
X11 opening display: :0
vo: X11 color mask: FFFFFF (R:FF0000 G:FF00 B:FF)
vo: X11 running at 1024x768 with depth 24 and 32 bpp (":0" => local display)
[x11] Detected wm supports NetWM.
[x11] Detected wm supports FULLSCREEN state.
[x11] Detected wm supports ABOVE state.
[x11] Detected wm supports BELOW state.
[x11] Detected wm supports STAYS_ON_TOP state.
[x11] Current fstype setting honours FULLSCREEN STAYS_ON_TOP ABOVE BELOW X atoms
[VO_XV] Using Xv Adapter #0 (Radeon Textured Video)
[xv common] Drawing no colorkey.
[xv common] Maximum source image dimensions: 8192x8192
Opening video filter: [screenshot]
Opening video filter: [eq2]
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
INFO: libavcodec init OK!
Selected video codec: [ffmpeg2] vfm: ffmpeg (FFmpeg MPEG-2)
==========================================================================
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
dec_audio: Allocating 192000 + 65536 = 257536 bytes for output buffer.
FFmpeg's libavcodec audio codec
INFO: libavcodec "ac3" init OK!
AUDIO: 48000 Hz, 2 ch, s16le, 192.0 kbit/12.50% (ratio: 24000->192000)
Selected audio codec: [ffac3] afm: ffmpeg (FFmpeg AC-3)
==========================================================================
Building audio filter chain for 48000Hz/2ch/s16le -> 0Hz/0ch/??...
[libaf] Adding filter dummy
[dummy] Was reinitialized: 48000Hz/2ch/s16le
[dummy] Was reinitialized: 48000Hz/2ch/s16le
Trying preferred audio driver 'alsa', options '[none]'
alsa-init: requested format: 48000 Hz, 2 channels, 9
alsa-init: using ALSA 1.0.23
alsa-init: setup for 1/2 channel(s)
alsa-init: using device default
alsa-init: pcm opened in blocking mode
alsa-init: got buffersize=32768
alsa-init: got period size 1024
alsa: 48000 Hz/2 channels/4 bpf/32768 bytes buffer/Signed 16 bit Little Endian
AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample)
AO: Description: ALSA-0.9.x-1.x audio output
AO: Author: Alex Beregszaszi, Zsolt Barat <joy@streamminister.de>
AO: Comment: under development
Building audio filter chain for 48000Hz/2ch/s16le -> 48000Hz/2ch/s16le...
[dummy] Was reinitialized: 48000Hz/2ch/s16le
[dummy] Was reinitialized: 48000Hz/2ch/s16le
Starting playback...
Increasing filtered audio buffer size from 0 to 34816
[ffmpeg] aspect_ratio: 1.777778
VDec: vo config request - 1920 x 1080 (preferred colorspace: Planar YV12)
Trying filter chain: eq2 screenshot vo
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
VO Config (1920x1080->1920x1080,flags=0,'MPlayer',0x32315659)
REQ: flags=0x437 req=0x0
[swscaler @ 0xee4c1d654e0]using unscaled yuv420p -> rgb24 special converter
REQ: flags=0x437 req=0x0
VO: [xv] 1920x1080 => 1920x1080 Planar YV12
VO: Description: X11/Xv
VO: Author: Gerd Knorr <kraxel@goldbach.in-berlin.de> and others
Xvideo image format: 0x32595559 (YUY2) packed
Xvideo image format: 0x32315659 (YV12) planar
Xvideo image format: 0x30323449 (I420) planar
Xvideo image format: 0x59565955 (UYVY) packed
using Xvideo port 63 for hw scaling
*** [eq2] Allocating mp_image_t, 1920x1088x12bpp YUV planar, 3133440 bytes
*** [eq2] Allocating mp_image_t, 1920x1088x12bpp YUV planar, 3133440 bytes
*** [screenshot] Exporting mp_image_t, 1920x1080x12bpp YUV planar, 3110400 bytes
*** [vo] Exporting mp_image_t, 1920x1080x12bpp YUV planar, 3110400 bytes
Unicode font: 679 glyphs.
Unicode font: 679 glyphs.
A: 600.2 V: 600.0 A-V: 0.171 ct: 0.000 0/ 0 ??% ??% ??,?% 1 0
*** [eq2] Allocating mp_image_t, 1920x1088x12bpp YUV planar, 3133440 bytes
A: 602.8 V: 602.8 A-V: 0.000 ct: 0.000 0/ 0 30% 3% 1.2% 8 0
Uninit audio filters...
[libaf] Removing filter dummy
Uninit audio: ffmpeg
Uninit video: ffmpeg
alsa-uninit: pcm closed
vo: uninit ...

Exiting... (Quit)

Foofaraw
2nd September 2012, 20:56
EIA-608 american closed captioning is stored in the 21st scanline of the image (which is outside the visible area) - if you want to extract it and convert it to text you could use a program like http://ccextractor.sourceforge.net/

Blue_MiSfit
3rd September 2012, 04:18
Line 21 VBI captioning is indeed the standard for standard definition, baseband digital and analog video. It's also and the standard for some interchange formats like D10 / IMX, both of which use MPEG-2's 4:2:2 profile to encode a 720x512 image for NTSC, which includes all VBI data (CC and VITC etc).

However, in the compressed domain, an end user would be unlikely to see captions in this form. Quite frequently the 608 (or 708) data packets are stored in the MPEG-2 user data, or as H.264 SEI messages. ATSC A/53 defines both methods.

As an aside, things are a bit different in the HD world. Baseband HD video is usually transported over HD-SDI. In this scenario, captions and other metadata are stored in the vertical ancillary (VANC) data. This VANC data can be partially (or sometimes completely) retained when capturing baseband HD-SDI into a file. However, it's more common for captions to instead be extracted from the VANC, and inserted into MPEG-2 user data, H.264 SEI messages, or a standalone caption file during capture.

Most of that is fairly off-topic, but I find captions interesting (and endlessly frustrating).

Derek

Foofaraw
3rd September 2012, 15:59
However, in the compressed domain, an end user would be unlikely to see captions in this form.


You might see it on Region 1 DVD's.