http://wiki.videolan.org/VLC_command-line_help do these work any better?Overlays/Subtitles:
--sout-transcode-senc=<string>
Subtitles encoder
This is the subtitles encoder module that will be used (and its
associated options).
--sout-transcode-scodec=<string>
Destination subtitles codec
This is the subtitles codec that will be used.
--sout-transcode-soverlay, --no-sout-transcode-soverlay
Destination subtitles codec (default disabled)
This is the subtitles codec that will be used. (default disabled)
--sout-transcode-sfilter=<string>
Overlays
This allows you to add overlays (also known as "subpictures" on the
transcoded video stream. The subpictures produced by the filters will
be overlayed directly onto the video. You must specify a
comma-separated list of subpicture modules
Code: Select all
14. syyskuuta 2008 23.26.51 EEST
ProjectX 0.90.04.00.b21 (30.08.2007)
-> working with collection 0
-> save normal log file
-> log 'packets out of sequence' / bit errors
-> log 'missing startcodes'
-> log 'PES header found in ES'
-> log WSS
-> log VPS
-> log RDS
-> log max. 500 warnings/errors
-> write all video data
-> write all other data
-> patch c.d.flagged infos of pictures
-> add sequence end code
-> insert sequenzendcode on format changes
-> set resolution in SDE
-> ensure each GOP has a sequenceheader
-> PVA: strictly specs. for audio streams
-> VOB: determine diff. Cell timelines
-> TS: ignore scrambled packets
-> TS: enhanced search for open packets
-> TS: join file segments (of Dreambox®)
-> TS: generate PMT stream dependent
-> get only enclosed PES/TS packets
-> concatenate different recordings
-> ensure 1st PES-packet start with video
-> generate PCR/SCR from PTS
-> write output files to: 'F:\Tallenukset'
-> 2 cutpoint(s) defined ( (0) use BytePos. for cuts )
-> main I/O-Buffersize in bytes 4096000 bytes
FileSegments:
* (0) I:\YLE_test.ts
second. Files:
* ---
+> Input File 0: 'I:\YLE_test.ts' (29 627 108 bytes)
-> Filetype is TS (generic PES Container)
-> demux
-> Service ID 0x1
-> PMT 0x1771 refers to these usable streams:
Video:
PID: 0x200(#0)
Audio:
PID: 0x28A(eng)(#138)
Teletext:
PID: 0x911(fin_i100 )
Subpict.:
PID: 0x403(fin_0x11_p1_a50 )
!> PID 0x0 (PAT) (7520 #41) -> ignored
ok> PID 0x200 has PES-ID 0xE0 (MPEG Video) (12408 #67)
ok> PID 0x911 has PES-ID 0xBD (private stream 1) (TTX) (12972 #70)
ok> PID 0x28A has PES-ID 0xC0 (MPEG Audio) (23688 #127)
!> PID 0x1771 (PMT) (63732 #340) -> ignored
-> cut-in @ GOP# 0 / new vframe 0 / new Timecode 00:00:00.000 (283504)
-> video basics: 720*576 @ 25fps @ 0.7031 (16:9) @ 8400000bps, vbvBuffer 112
-> starting export of video data @ GOP# 0
!> dropping useless B-Frames @ GOP# 0 / new Timecode 00:00:00.000
ok> PID 0x403 has PES-ID 0xBD (private stream 1) (SubID 0x20) (1536712 #8175)
packs: 156847 100% 29627108
++> Mpg Video: PID 0x0200 / PesID 0xE0 / SubID 0x00 :
-> Video: fr-ct-1p-cg-og-dg -> 1402-1-0-117-0-0
-> Video length: 1402 frames @ 00:00:56.080
-> GOP summary: min. 20, max. 24 fields; contains interlaced frames
-> avg. nom. bitrate 3537293bps (min/max: 2784800/4762000)
-> set first sequenceheader bitrate to 4762000bps
---> new File: F:\Tallenukset\YLE_test.mpv
++> Teletext: PID 0x0911 / PesID 0xBD / SubID 0x10 :
-> export format: srt
-> temp. file: YLE_test.tt (1488606 bytes)
-> looking for page number 451
-> Teletext PTS: first packet 09:54:52.138, last packet 09:55:48.178
-> Video PTS: start 1.GOP 09:54:52.661, end last GOP 09:55:48.741
->adjusting teletext at video-timeline
-> program: YLE
6 pages of No. 451 written...
---> new File: F:\Tallenukset\YLE_test[451].srt
++> Mpg Audio: PID 0x028A / PesID 0xC0 / SubID 0x00 :
-> check CRC of AC-3 / MPEG-Audio L1,2
-> remove CRC in MPEG-Audio L1,2
-> add frames
-> Audio PTS: first packet 09:54:52.138, last packet 09:55:48.298
-> Video PTS: start 1.GOP 09:54:52.661, end last GOP 09:55:48.741
-> adjusting audio at video-timeline
-> src_audio: MPEG-1, Layer2, 48000Hz, stereo, 224kbps, CRC @ 00:00:00.000
!> 14 frame(s) (336ms) added @ 00:00:55.752
audio frames: wri-pre-skip-ins-add 2337-0-0-0-14 @ 00:00:56.088 done...
---> new File: 'F:\Tallenukset\YLE_test.mp2.mpa.wav'
++> Subpicture: PID 0x0403 / PesID 0xBD / SubID 0x20 :
-> selected DVB subpicture color model: YLE ; fixed to page id:
-> export format: sup
-> temp. file: YLE_test.sp (48219 bytes)
-> set new picture display mode: all forced
-> Subpicture PTS: first packet 09:54:56.796, last packet 09:55:39.719
-> Video PTS: start 1.GOP 09:54:52.661, end last GOP 09:55:48.741
-> adjusting subpicture at video-timeline
-> source is DVB Subtitle...
5 subpictures written...
---> new File: F:\Tallenukset\YLE_test.sup
-> create VobSub Files (idx + sub) : F:\Tallenukset\YLE_test.sup.sub
summary of created media files:
.Video (m2v): 1402 Frames 00:00:56.080 'F:\Tallenukset\YLE_test.mpv'
Audio 00 (mp2): 2337 Frames 00:00:56.088 0-0-0-14 'F:\Tallenukset\YLE_test.mp2.mpa.wav'
SubPicture 01: 5 subpictures 'F:\Tallenukset\YLE_test.sup'
Teletext 00: 6 pages of No. 451 'F:\Tallenukset\YLE_test[451].srt'
=> 26 399 570 bytes written...
-> we have 4 warnings/errors.
Code: Select all
9b6378b771cc4c9618dd934a8a4bf5c39e7dcd86 is first bad commit
commit 9b6378b771cc4c9618dd934a8a4bf5c39e7dcd86
Author: Christophe Massiot <massiot@videolan.org>
Date: Fri Apr 6 18:03:48 2007 +0000
* Backport basic teletext decoder, and teletext and dvbsub-related fixes
in the TS demux and mux. Includes changesets :
[18605] [18606] [18607] [18609] [18610] [18613] [18615] [18620] [18630]
[18633] [19717]
Code: Select all
vlc -vvv YLE_TV1_dvbsub_ttxsub.ts --sub-track=0 --sout-transcode-deinterlace ':sout=#transcode{vcodec=mp2v,vb=1000,acodec,soverlay}:standard{mux=ps,dst=output.mpg,access=file}' vlc://quit --intf dummy
Code: Select all
vlc -vvv YLE_TV1_dvbsub_ttxsub.ts --sub-track=1 --sub-language fi --telx-override-page=451 --sout-transcode-deinterlace ':sout=#transcode{vcodec=mp2v,vb=1000,acodec,soverlay}:standard{mux=ps,dst=output.mpg,access=file}' vlc://quit --intf dummy
Code: Select all
--- a/modules/demux/ts.c
+++ b/modules/demux/ts.c
@@ -3009,69 +3009,213 @@ static void PMTCallBack( demux_t *p_demux, dvbpsi_pmt_t *p_pmt )
msg_Dbg( p_demux, " * EBU Teletext descriptor" );
pid->es->fmt.i_cat = SPU_ES;
pid->es->fmt.i_codec = VLC_FOURCC( 't', 'e', 'l', 'x' );
- pid->es->fmt.psz_description = strdup( "Teletext" );
pid->es->fmt.i_extra = p_dr->i_length;
pid->es->fmt.p_extra = malloc( p_dr->i_length );
memcpy( pid->es->fmt.p_extra, p_dr->p_data,
p_dr->i_length );
+
+#if defined _DVBPSI_DR_56_H_ && defined DVBPSI_VERSION \
+ && DVBPSI_VERSION_INT > ((0<<16)+(1<<8)+5)
+ pid->es->fmt.i_group = p_pmt->i_program_number;
+
+ /* In stream output mode, only enable descriptor
+ * pass-through. */
+ if( !p_demux->out->b_sout )
+ {
+ uint16_t n, i = 0;
+ dvbpsi_teletext_dr_t *sub;
+
+ sub = dvbpsi_DecodeTeletextDr( p_dr );
+ if( !sub ) continue;
+
+ /* Each subtitle ES contains n languages,
+ * We are going to create n ES for the n tracks */
+ for( n = 0; n < sub->i_pages_number; n++ )
+ {
+ dvbpsi_teletextpage_t *p_page = &sub->p_pages[n];
+ if( p_page->i_teletext_type == 0x2
+ || p_page->i_teletext_type == 0x5 )
+ {
+ ts_es_t *p_es;
+
+ if( i == 0 )
+ {
+ p_es = pid->es;
+ }
+ else
+ {
+ p_es = malloc( sizeof( ts_es_t ) );
+ p_es->fmt = pid->es->fmt;
+ p_es->id = NULL;
+ p_es->p_pes = NULL;
+ p_es->i_pes_size = 0;
+ p_es->i_pes_gathered = 0;
+ p_es->pp_last = &p_es->p_pes;
+ p_es->p_mpeg4desc = NULL;
+
+ TAB_APPEND( pid->i_extra_es, pid->extra_es,
+ p_es );
+ }
+
+ p_es->fmt.psz_language = malloc( 4 );
+ memcpy( p_es->fmt.psz_language,
+ p_page->i_iso6392_language_code, 3 );
+ p_es->fmt.psz_language[3] = 0;
+
+ switch( p_page->i_teletext_type )
+ {
+ case 0x2:
+ p_es->fmt.psz_description =
+ strdup(_("subtitles"));
+ msg_Dbg( p_demux,
+ " * sub lan=%s page=%d%x",
+ p_es->fmt.psz_language,
+ p_page->i_teletext_magazine_number,
+ p_page->i_teletext_page_number );
+ break;
+
+ case 0x5:
+ p_es->fmt.psz_description =
+ strdup(_("hearing impaired"));
+ msg_Dbg( p_demux,
+ " * hearing impaired lan=%s page=%d%x",
+ p_es->fmt.psz_language,
+ p_page->i_teletext_magazine_number,
+ p_page->i_teletext_page_number );
+ break;
+ default:
+ break;
+ }
+
+ p_es->fmt.subs.dvb.i_id =
+ p_page->i_teletext_page_number;
+ /* Hack, FIXME */
+ p_es->fmt.subs.dvb.i_id |=
+ ((int)p_page->i_teletext_magazine_number << 16);
+
+ i++;
+ }
+ }
+
+ if( !i )
+ pid->es->fmt.i_cat = UNKNOWN_ES;
+ }
+ else
+#endif /* defined _DVBPSI_DR_56_H_ && DVBPSI_VERSION(0,1,6) */
+ {
+ pid->es->fmt.subs.dvb.i_id = -1;
+ pid->es->fmt.psz_description = strdup( "Teletext" );
+ }
}
-#ifdef _DVBPSI_DR_59_H_
else if( p_dr->i_tag == 0x59 )
{
- uint16_t n;
- dvbpsi_subtitling_dr_t *sub;
-
/* DVB subtitles */
pid->es->fmt.i_cat = SPU_ES;
pid->es->fmt.i_codec = VLC_FOURCC( 'd', 'v', 'b', 's' );
- pid->es->fmt.i_group = p_pmt->i_program_number;
+ pid->es->fmt.i_extra = p_dr->i_length;
+ pid->es->fmt.p_extra = malloc( p_dr->i_length );
+ memcpy( pid->es->fmt.p_extra, p_dr->p_data,
+ p_dr->i_length );
- sub = dvbpsi_DecodeSubtitlingDr( p_dr );
- if( !sub ) continue;
+#ifdef _DVBPSI_DR_59_H_
+ pid->es->fmt.i_group = p_pmt->i_program_number;
- /* Each subtitle ES contains n languages,
- * We are going to create n ES for the n tracks */
- if( sub->i_subtitles_number > 0 )
+ /* In stream output mode, only enable descriptor
+ * pass-through. */
+ if( !p_demux->out->b_sout )
{
- pid->es->fmt.psz_language = malloc( 4 );
- memcpy( pid->es->fmt.psz_language,
- sub->p_subtitle[0].i_iso6392_language_code, 3);
- pid->es->fmt.psz_language[3] = 0;
-
- pid->es->fmt.subs.dvb.i_id =
- sub->p_subtitle[0].i_composition_page_id;
- /* Hack, FIXME */
- pid->es->fmt.subs.dvb.i_id |=
- ((int)sub->p_subtitle[0].i_ancillary_page_id << 16);
- }
- else pid->es->fmt.i_cat = UNKNOWN_ES;
+ uint16_t n, i = 0;
+ dvbpsi_subtitling_dr_t *sub;
+
+ sub = dvbpsi_DecodeSubtitlingDr( p_dr );
+ if( !sub ) continue;
+
+ for( n = 0; n < sub->i_subtitles_number; n++ )
+ {
+ dvbpsi_subtitle_t *p_sub = &sub->p_subtitle[n];
+ ts_es_t *p_es;
+
+ if( i == 0 )
+ {
+ p_es = pid->es;
+ }
+ else
+ {
+ p_es = malloc( sizeof( ts_es_t ) );
+ p_es->fmt = pid->es->fmt;
+ p_es->id = NULL;
+ p_es->p_pes = NULL;
+ p_es->i_pes_size = 0;
+ p_es->i_pes_gathered = 0;
+ p_es->pp_last = &p_es->p_pes;
+ p_es->p_mpeg4desc = NULL;
+
+ TAB_APPEND( pid->i_extra_es, pid->extra_es,
+ p_es );
+ }
+
+ p_es->fmt.psz_language = malloc( 4 );
+ memcpy( p_es->fmt.psz_language,
+ p_sub->i_iso6392_language_code, 3 );
+ p_es->fmt.psz_language[3] = 0;
+
+ switch( p_sub->i_subtitling_type )
+ {
+ case 0x10:
+ p_es->fmt.psz_description =
+ strdup(_("subtitles"));
+ break;
+ case 0x11:
+ p_es->fmt.psz_description =
+ strdup(_("4:3 subtitles"));
+ break;
+ case 0x12:
+ p_es->fmt.psz_description =
+ strdup(_("16:9 subtitles"));
+ break;
+ case 0x13:
+ p_es->fmt.psz_description =
+ strdup(_("2.21:1 subtitles"));
+ break;
+ case 0x20:
+ p_es->fmt.psz_description =
+ strdup(_("hearing impaired"));
+ break;
+ case 0x21:
+ p_es->fmt.psz_description =
+ strdup(_("4:3 hearing impaired"));
+ break;
+ case 0x22:
+ p_es->fmt.psz_description =
+ strdup(_("16:9 hearing impaired"));
+ break;
+ case 0x23:
+ p_es->fmt.psz_description =
+ strdup(_("2.21:1 hearing impaired"));
+ break;
+ default:
+ break;
+ }
+
+ p_es->fmt.subs.dvb.i_id =
+ p_sub->i_composition_page_id;
+ /* Hack, FIXME */
+ p_es->fmt.subs.dvb.i_id |=
+ ((int)p_sub->i_ancillary_page_id << 16);
+
+ i++;
+ }
- for( n = 1; n < sub->i_subtitles_number; n++ )
+ if( !i )
+ pid->es->fmt.i_cat = UNKNOWN_ES;
+ }
+ else
+#endif /* _DVBPSI_DR_59_H_ */
{
- ts_es_t *p_es = malloc( sizeof( ts_es_t ) );
- p_es->fmt = pid->es->fmt;
- p_es->id = NULL;
- p_es->p_pes = NULL;
- p_es->i_pes_size = 0;
- p_es->i_pes_gathered = 0;
- p_es->pp_last = &p_es->p_pes;
- p_es->p_mpeg4desc = NULL;
-
- p_es->fmt.psz_language = malloc( 4 );
- memcpy( p_es->fmt.psz_language,
- sub->p_subtitle[n].i_iso6392_language_code, 3);
- p_es->fmt.psz_language[3] = 0;
-
- p_es->fmt.subs.dvb.i_id =
- sub->p_subtitle[n].i_composition_page_id;
- /* Hack, FIXME */
- p_es->fmt.subs.dvb.i_id |=
- ((int)sub->p_subtitle[n].i_ancillary_page_id << 16);
-
- TAB_APPEND( pid->i_extra_es, pid->extra_es, p_es );
+ pid->es->fmt.subs.dvb.i_id = -1;
+ pid->es->fmt.psz_description = strdup( "DVB subtitles" );
}
}
-#endif /* _DVBPSI_DR_59_H_ */
}
}
else if( p_es->i_type == 0xa0 )
Code: Select all
--- modules/demux/ts.c.old 2008-12-23 00:59:54.000000000 +0200
+++ modules/demux/ts.c 2008-12-23 01:10:05.000000000 +0200
@@ -3120,10 +3120,6 @@
#ifdef _DVBPSI_DR_59_H_
pid->es->fmt.i_group = p_pmt->i_program_number;
- /* In stream output mode, only enable descriptor
- * pass-through. */
- if( !p_demux->out->b_sout )
- {
uint16_t n, i = 0;
dvbpsi_subtitling_dr_t *sub;
@@ -3208,13 +3204,7 @@
if( !i )
pid->es->fmt.i_cat = UNKNOWN_ES;
- }
- else
#endif /* _DVBPSI_DR_59_H_ */
- {
- pid->es->fmt.subs.dvb.i_id = -1;
- pid->es->fmt.psz_description = strdup( "DVB subtitles" );
- }
}
}
}
Return to “VLC media player for Windows Troubleshooting”
Users browsing this forum: No registered users and 19 guests