I was watching tv today, using VLC, when the sound suddenly cut out at the start of a certain program. The program is a Korean soap opera which is broadcast with bilingual, Japanese and Korean, audio. Japanese digital TV is a bit of a hassle in any software player since broadcasters may use different encodings on different channels or even different encodings for a show and commercial breaks on the same channel, etc. A restart usually solves the problem if encoding has been switched, but I found that restarting the player did not restore audio during the soap opera. Restarting during a commercial break did restore audio, until the end of the commercial break when sound cut out again.
I tried starting the stream from the terminal and came across this message:
Code: Select all
Multiple blocks per frame in ADTS not supported
Mplayer is able to play the stream with both languages simultaneously, Japanese on the left channel and Korean on the right channel. This is analogous to the pre-digital era of Japanese TV, when bilingual broadcasts were in stereo with Japanese on the left and the native language on the right. Televisions could be set to monaural Japanese, monaural native language, or stereo bilingual. I'm not entirely sure how this works internally in the digital era. There are no controls on the card nor in the driver to select which audio stream comes through, so it has to be done by the video player or encoder. That is to say, it seems the multiple blocks per frame are being used to provide two distinct audio streams.
I have saved 20 seconds of this stream, which is obviously copyrighted material. I would like to post it here, or possibly in the bug tracker, as a "Fair Use" excerpt, which I believe justified because:
1. It is for analysis and research toward the improvement and development of a player for the encoded stream.
2. It is broadcast freely over-the-air from a local television station.**
3. It is only 20 seconds.
4. This particular type of encoding is rare and I do not have the knowledge to create a similarly encoded stream.
5. Capturing a sample of this stream requires particular hardware and can only be done in Japan.
For now, I will wait for authorization from moderation. Until then, here is the ouput of:
Code: Select all
mplayer -frames 0 -vo null -ao null -identify bilingual.ts
Code: Select all
MPlayer SVN-r34707-4.6 (C) 2000-2012 MPlayer Team
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.
Playing bilingual.ts.
libavformat version 54.0.0 (internal)
TS file format detected.
PROGRAM_ID=0 (0x00), PMT_PID: 16(0x10)
PROGRAM_ID=61456 (0xF010), PMT_PID: 257(0x101)
PROGRAM_ID=61457 (0xF011), PMT_PID: 258(0x102)
PROGRAM_ID=61840 (0xF190), PMT_PID: 8136(0x1FC8)
PROGRAM_ID=61591 (0xF097), PMT_PID: 2032(0x7F0)
PROGRAM_ID=0 (0x00), PMT_PID: 16(0x10)
PROGRAM_ID=61456 (0xF010), PMT_PID: 257(0x101)
PROGRAM_ID=61457 (0xF011), PMT_PID: 258(0x102)
PROGRAM_ID=61840 (0xF190), PMT_PID: 8136(0x1FC8)
PROGRAM_ID=61591 (0xF097), PMT_PID: 2032(0x7F0)
PROGRAM_ID=0 (0x00), PMT_PID: 16(0x10)
PROGRAM_ID=61456 (0xF010), PMT_PID: 257(0x101)
PROGRAM_ID=61457 (0xF011), PMT_PID: 258(0x102)
PROGRAM_ID=61840 (0xF190), PMT_PID: 8136(0x1FC8)
PROGRAM_ID=61591 (0xF097), PMT_PID: 2032(0x7F0)
PROGRAM_ID=0 (0x00), PMT_PID: 16(0x10)
PROGRAM_ID=61456 (0xF010), PMT_PID: 257(0x101)
PROGRAM_ID=61457 (0xF011), PMT_PID: 258(0x102)
PROGRAM_ID=61840 (0xF190), PMT_PID: 8136(0x1FC8)
PROGRAM_ID=61591 (0xF097), PMT_PID: 2032(0x7F0)
PROGRAM_ID=0 (0x00), PMT_PID: 16(0x10)
PROGRAM_ID=61456 (0xF010), PMT_PID: 257(0x101)
PROGRAM_ID=61457 (0xF011), PMT_PID: 258(0x102)
PROGRAM_ID=61840 (0xF190), PMT_PID: 8136(0x1FC8)
PROGRAM_ID=61591 (0xF097), PMT_PID: 2032(0x7F0)
PROGRAM_ID=0 (0x00), PMT_PID: 16(0x10)
PROGRAM_ID=61456 (0xF010), PMT_PID: 257(0x101)
PROGRAM_ID=61457 (0xF011), PMT_PID: 258(0x102)
PROGRAM_ID=61840 (0xF190), PMT_PID: 8136(0x1FC8)
PROGRAM_ID=61591 (0xF097), PMT_PID: 2032(0x7F0)
PROGRAM_ID=0 (0x00), PMT_PID: 16(0x10)
PROGRAM_ID=61456 (0xF010), PMT_PID: 257(0x101)
PROGRAM_ID=61457 (0xF011), PMT_PID: 258(0x102)
PROGRAM_ID=61840 (0xF190), PMT_PID: 8136(0x1FC8)
PROGRAM_ID=61591 (0xF097), PMT_PID: 2032(0x7F0)
PROGRAM_ID=0 (0x00), PMT_PID: 16(0x10)
PROGRAM_ID=61456 (0xF010), PMT_PID: 257(0x101)
PROGRAM_ID=61457 (0xF011), PMT_PID: 258(0x102)
PROGRAM_ID=61840 (0xF190), PMT_PID: 8136(0x1FC8)
PROGRAM_ID=61591 (0xF097), PMT_PID: 2032(0x7F0)
PROGRAM_ID=0 (0x00), PMT_PID: 16(0x10)
PROGRAM_ID=61456 (0xF010), PMT_PID: 257(0x101)
PROGRAM_ID=61457 (0xF011), PMT_PID: 258(0x102)
PROGRAM_ID=61840 (0xF190), PMT_PID: 8136(0x1FC8)
PROGRAM_ID=61591 (0xF097), PMT_PID: 2032(0x7F0)
PROGRAM_ID=0 (0x00), PMT_PID: 16(0x10)
PROGRAM_ID=61456 (0xF010), PMT_PID: 257(0x101)
PROGRAM_ID=61457 (0xF011), PMT_PID: 258(0x102)
PROGRAM_ID=61840 (0xF190), PMT_PID: 8136(0x1FC8)
PROGRAM_ID=61591 (0xF097), PMT_PID: 2032(0x7F0)
VIDEO MPEG2(pid=273) AUDIO AAC(pid=274) NO SUBS (yet)! PROGRAM N. 61456
ID_VIDEO_ID=273
ID_AUDIO_ID=274
PROGRAM_ID=0 (0x00), PMT_PID: 16(0x10)
PROGRAM_ID=61456 (0xF010), PMT_PID: 257(0x101)
PROGRAM_ID=61457 (0xF011), PMT_PID: 258(0x102)
PROGRAM_ID=61840 (0xF190), PMT_PID: 8136(0x1FC8)
PROGRAM_ID=61591 (0xF097), PMT_PID: 2032(0x7F0)
ID_AUDIO_ID=643
PROGRAM_ID=0 (0x00), PMT_PID: 16(0x10)
PROGRAM_ID=61456 (0xF010), PMT_PID: 257(0x101)
PROGRAM_ID=61457 (0xF011), PMT_PID: 258(0x102)
PROGRAM_ID=61840 (0xF190), PMT_PID: 8136(0x1FC8)
PROGRAM_ID=61591 (0xF097), PMT_PID: 2032(0x7F0)
PROGRAM_ID=0 (0x00), PMT_PID: 16(0x10)
PROGRAM_ID=61456 (0xF010), PMT_PID: 257(0x101)
PROGRAM_ID=61457 (0xF011), PMT_PID: 258(0x102)
PROGRAM_ID=61840 (0xF190), PMT_PID: 8136(0x1FC8)
PROGRAM_ID=61591 (0xF097), PMT_PID: 2032(0x7F0)
VIDEO: MPEG2 1440x1080 (aspect 3) 29.970 fps 20000.0 kbps (2500.0 kbyte/s)
Load subtitles in ./
ID_FILENAME=bilingual.ts
ID_DEMUXER=mpegts
ID_VIDEO_FORMAT=0x10000002
ID_VIDEO_BITRATE=20000000
ID_VIDEO_WIDTH=1440
ID_VIDEO_HEIGHT=1080
ID_VIDEO_FPS=29.970
ID_VIDEO_ASPECT=0.0000
ID_AUDIO_FORMAT=MP4A
ID_AUDIO_BITRATE=0
ID_AUDIO_RATE=0
ID_AUDIO_NCH=0
ID_START_TIME=6560.32
ID_LENGTH=15.81
ID_SEEKABLE=1
ID_CHAPTERS=0
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
libavcodec version 54.0.0 (internal)
Selected video codec: [ffmpeg2] vfm: ffmpeg (FFmpeg MPEG-2)
==========================================================================
ID_VIDEO_CODEC=ffmpeg2
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
AUDIO: 48000 Hz, 2 ch, s16le, 0.0 kbit/0.00% (ratio: 0->192000)
ID_AUDIO_BITRATE=0
ID_AUDIO_RATE=48000
ID_AUDIO_NCH=2
Selected audio codec: [ffaac] afm: ffmpeg (FFmpeg AAC (MPEG-2/MPEG-4 Audio))
==========================================================================
AO: [null] 48000Hz 2ch s16le (2 bytes per sample)
ID_AUDIO_CODEC=ffaac
Code: Select all
VLC media player 2.0.4 Twoflower (revision 2.0.3+git20120914+r389)
VLC version 2.0.4 Twoflower (2.0.3+git20120914+r389)
Compiled by buildd on lawrencium.ppa (Sep 15 2012 13:04:43)
Compiler: gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
Code: Select all
0.8.3-4:0.8.3-0ubuntu0.12.04.1, Copyright (c) 2003-2012 the Libav developers built on Jun 12 2012 16:52:09 with gcc 4.6.3
**As in free beer, not freedom. All air, cable, and satellite television broadcasts in Japan are encrypted. Decrypting these broadcasts is not illegal, nor is their encryption mandated by law, but the monopoly that licenses its decryption hardware to select manufactures and provides customers a restrictive end-user license agreement, which they are not required to sign or acknowledge, is supported by all the major media and broadcasting corporations, including the semi-public national broadcasting corporation (which is like PBS and the FCC all in one, for those in the US), and frowns on unlicensed devices and software capable of decryption--to the best of my knowledge. Excuse the long sentence; suffice to say that decryption is legal, but heartily disliked by the bigwigs of broadcasting in Japan, AFAIK. VLC has nothing to do with this decryption, which is done by software that strips the encryption from the digital stream but does not otherwise alter the audio or visual encoding.
*EDIT* Luckily it wasn't necessary to provide sample video as the issue is known and nkoriyama's patches resolve it.