I want to stream an MPEG-PS file from a server using the MPEG-TS container format. The receiving client should then capture the stream and convert it back to MPEG-PS. I do not want to do any transcoding. It is very important that the output file at the client is exactly the same as the original source file!

I have been doing some tests with VLC and ffmpeg.

My source file is a MPEG-2 encoded video with an AC3 audio stream. I use VLC to stream it over UDP. I've set it up to send it using an MPEG-TS container and I have disabled video and audio transcoding.

I receive it using ffmpeg using the following command line:

ffmpeg -i rtp://@ -vcodec copy -sameq -acodec copy downloaded.mpeg

The movie is downloaded and plays correctly. However it seems that the video and audio packet order is swapped, at least it looks like it when I look at the files using an hex editor.

When the stream is first received in ffmpeg I get an error message that stream 0 has a diffrent frame rate than the container format 48 (48/1) -> 24 (24/1). What does that mean?