Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux-dvb] Re: Any way to mux two PES streams/files to a PS stream?
hello Olaf,
In mpegtools packaged with linux-dvb driver you can find mplex program
which can do what you want.
The doc says it can mux 1 video + 1 audio but in fact, the subroutines
are able to handle 2 audio PES streams. Have a look at the code (domplex
subroutine).
In case it may help you, here is a patch I proposed more a few months
ago in this Maillist:
You may need to adapt this patch to the latest mplex version as it may
have changed a bit.
========================================================================
--- mplex.cpp Wed Jun 27 14:21:48 2001
+++ ../../../DVB/apps/mpegtools/mplex.cpp Fri May 10 23:45:29 2002
@@ -240,7 +240,7 @@
printf (" --help, -h: print help message\n");
printf (" --type, -t: set output type (MPEG2, DVD,
SVCD (default), MPEG1, VCD, XSVCD)\n");
printf (" --of, -o: set output file\n");
- printf (" --input_stream, -i: set input stream type
(PS_STREAM (default), TS_STREAM, ES_STREAM (needs 2 input files audio
video))\n");
+ printf (" --input_stream, -i: set input stream type
(PS_STREAM (default), TS_STREAM, ES_STREAM (needs 2 or 3 input files
<audio1> [ <audio2> ] <video>))\n");
printf (" --temp_dir, -d: directory for temporary
demux files\n");
printf (" --audio_delay, -a: set audio delay in ms\n");
printf (" --video_delay, -v: set video delay in ms\n");
@@ -332,6 +332,10 @@
} else if (optind == argc-2 && !strcmp(inpt,"ES_STREAM")) {
strcpy(AudioFilename,argv[optind]);
strcpy(VideoFilename,argv[optind+1]);
+ } else if (optind == argc-3 && !strcmp(inpt,"ES_STREAM")) {
+ strcpy(AudioFilename,argv[optind]);
+ strcpy(Audio1Filename,argv[optind+1]);
+ strcpy(VideoFilename,argv[optind+2]);
} else {
usage(argv[0]);
}
@@ -404,7 +408,11 @@
if (ptsdiff > 0) video_delay_ms += ptsdiff/90;
else audio_delay_ms += -ptsdiff/90;
- domplex(1,1);
+ if (strlen(Audio1Filename))
+ domplex(1,2);
+ else
+ domplex(1,1);
+
if (strcmp(inpt,"ES_STREAM")){
unlink(AudioFilename);
unlink(VideoFilename);
========================================================================
Have fun !!
Patrick.
Olaf Beck wrote:
> Hello Folks,
>
> I'm doing some work with a proprietary MPEG stream (TIVO - DirecTv). The PS
> stream or what ever you would like to call it is of proprietary nature but
> the PES stream is following the MPEG specs to some extent.
>
> I now have code in a early stage and it looks like it will be quite easy to
> extract two PES streams from the "TIVO-PS" stream. One audio (either AC3 or
> MPEG) and one Video. I want to extact the PES stream since it will enable me
> to keep the PTS information so the final PS stream is in sync.
>
> Now for what all I have seen in forms of Open Source muxers is muxers that
> only can mux ES streams or at least thats what a quick look tells me. Does
> anyone know of a way to mux PES streams?
>
> Cheers Olaf
>
> PS: Yes, I could naturally modify a OSS muxer to take to PES streams but I
> rather spend time coding on the extraction.
>
>
>
>
--
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe linux-dvb" as subject.
Home |
Main Index |
Thread Index