[FFmpeg-user] Parse a transport stream and get just 1 program
Shupert, Jim
jim.shupert at hearst.com
Mon Oct 11 04:12:34 EEST 2021
-----Original Message-----
From: ffmpeg-user <ffmpeg-user-bounces at ffmpeg.org> On Behalf Of Shupert, Jim via ffmpeg-user
Sent: Sunday, October 10, 2021 5:15 PM
To: ffmpeg-user at ffmpeg.org
Cc: Shupert, Jim <jim.shupert at hearst.com>
Subject: [EXTERNAL] [FFmpeg-user] Parse a transport stream and get just 1 program
Friends,
I have a file.ts
It seems to contain 4 programs.
I can see this by when I play it in VLC I can select what I want by Playback - Program and picking the top of the 4 listed..
Ffmpeg shows the following
ffmpeg version N-99707-g2b702015d8 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 9.3-win32 (GCC) 20200320
configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --enable-shared --disable-static --disable-debug --enable-iconv --enable-zlib --enable-libxml2 --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-opencl --enable-libvmaf --enable-vulkan --enable-libvorbis --enable-amf --enable-libaom --enable-avisynth --enable-libdav1d --enable-libdavs2 --enable-ffnvcodec --enable-cuda-llvm --enable-libglslang --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvpx --enable-libwebp --enable-libmfx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librav1e --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --enable-libvidstab --enable-libx264 --e
nable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-libs=-lgomp
libavutil 56. 60.100 / 56. 60.100
libavcodec 58.111.101 / 58.111.101
libavformat 58. 62.100 / 58. 62.100
libavdevice 58. 11.102 / 58. 11.102
libavfilter 7. 88.100 / 7. 88.100
libswscale 5. 8.100 / 5. 8.100
libswresample 3. 8.100 / 3. 8.100
libpostproc 55. 8.100 / 55. 8.100
[mpeg2video @ 000001a962a12dc0] Invalid frame dimensions 0x0.
Last message repeated 3 times
[mpegts @ 000001a960bfd900] DTS discontinuity in stream 3: packet 3 with DTS 7640699639, packet 4 with DTS 16230637234 [mpeg2video @ 000001a962a12dc0] Invalid frame dimensions 0x0.
Last message repeated 2 times
[mpeg2video @ 000001a960c92480] Invalid frame dimensions 0x0.
[mpeg2video @ 000001a962a12dc0] Invalid frame dimensions 0x0.
[mpeg2video @ 000001a960c92480] Invalid frame dimensions 0x0.
[mpeg2video @ 000001a962a12dc0] Invalid frame dimensions 0x0.
Last message repeated 1 times
[mpeg2video @ 000001a960c92480] Invalid frame dimensions 0x0.
[mpeg2video @ 000001a962a12dc0] Invalid frame dimensions 0x0.
Last message repeated 1 times
[mpeg2video @ 000001a960c92480] Invalid frame dimensions 0x0.
Last message repeated 1 times
[mpeg2video @ 000001a962a12dc0] Invalid frame dimensions 0x0.
Last message repeated 2 times
[mpeg2video @ 000001a960c92480] Invalid frame dimensions 0x0.
Last message repeated 4 times
[mpeg2video @ 000001a962a12dc0] Invalid frame dimensions 0x0.
[mpeg2video @ 000001a960c92480] Invalid frame dimensions 0x0.
Last message repeated 13 times
[mpegts @ 000001a960bfd900] PES packet size mismatch [mpegts @ 000001a960bfd900] Packet corrupt (stream = 4, dts = 8489776251).
[mpegts @ 000001a960bfd900] PES packet size mismatch [mpegts @ 000001a960bfd900] Packet corrupt (stream = 10, dts = 8489790651).
[mpegts @ 000001a960bfd900] PES packet size mismatch [mpegts @ 000001a960bfd900] Packet corrupt (stream = 6, dts = 8489805840).
[mpegts @ 000001a960bfd900] PES packet size mismatch [mpegts @ 000001a960bfd900] Packet corrupt (stream = 7, dts = 8489805840).
[mpegts @ 000001a960bfd900] PES packet size mismatch [mpegts @ 000001a960bfd900] Packet corrupt (stream = 8, dts = 7958876999).
[mpegts @ 000001a960bfd900] PES packet size mismatch [mpegts @ 000001a960bfd900] Packet corrupt (stream = 9, dts = 7958876999).
[mpegts @ 000001a960bfd900] stream 1 : no PTS found at end of file, duration not set [mpegts @ 000001a960bfd900] stream 3 : no PTS found at end of file, duration not set Input #0, mpegts, from 'MTP.ts':
Duration: 27:29:39.15, start: 84896.562556, bitrate: 692 kb/s
Program 1
Stream #0:2[0x51]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 1920x1080 [SAR 1:1 DAR 16:9], Closed Captions, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Side data:
cpb: bitrate max/min/avg: 17598000/0/0 buffer size: 7995392 vbv_delay: N/A
Stream #0:4[0x54](eng): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), fltp, 384 kb/s
Stream #0:10[0x56](spa): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 192 kb/s
Program 2
Stream #0:5[0x61]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 640x480 [SAR 4:3 DAR 16:9], Closed Captions, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Side data:
cpb: bitrate max/min/avg: 7810800/0/0 buffer size: 1835008 vbv_delay: N/A
Stream #0:6[0x64](eng): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 192 kb/s
Stream #0:7[0x67](spa): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 192 kb/s
Program 3
Stream #0:3[0x71]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 640x480 [SAR 4:3 DAR 16:9], Closed Captions, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Side data:
cpb: bitrate max/min/avg: 7810800/0/0 buffer size: 1835008 vbv_delay: N/A
Stream #0:8[0x74](eng): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 192 kb/s
Stream #0:9[0x76](eng): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 192 kb/s
Program 7
Stream #0:0[0xb1]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, progressive), 1280x720 [SAR 1:1 DAR 16:9], Closed Captions, 59.94 fps, 59.94 tbr, 90k tbn, 119.88 tbc
Side data:
cpb: bitrate max/min/avg: 9759200/0/0 buffer size: 7995392 vbv_delay: N/A
Stream #0:1[0xb4](eng): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), fltp, 384 kb/s At least one output file must be specified
My goal is to have a file.ts that contains just the "1st" program The video , audio and captions.
I think that is would be this part
Program 1
Stream #0:2[0x51]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 1920x1080 [SAR 1:1 DAR 16:9], Closed Captions, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Side data:
cpb: bitrate max/min/avg: 17598000/0/0 buffer size: 7995392 vbv_delay: N/A
Stream #0:4[0x54](eng): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), fltp, 384 kb/s
Stream #0:10[0x56](spa): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 192 kb/s
And I think I can solve this with mapping Ending with a file.ts with just the 1 video,audio
What would be the correct means to achive this?
Thanks much!
Jim shupert
I was trying map without full success.
I think this works
ffmpeg -i MTP.ts -y -c copy -map p:1 mtp_1.mpg
I still wonder if there is a better way?
More information about the ffmpeg-user
mailing list