[FFmpeg-trac] #2186(avformat:open): program detection in transport stream broken (was: udp stream input differences between 10.5 and newers)
FFmpeg
trac at avcodec.org
Fri Jan 25 02:54:55 CET 2013
#2186: program detection in transport stream broken
-------------------------------------+-------------------------------------
Reporter: hugo | Owner:
Type: defect | Status: open
Priority: important | Component: avformat
Version: git-master | Resolution:
Keywords: mpegts | Blocked By:
regression | Reproduced by developer: 1
Blocking: |
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Changes (by cehoyos):
* status: new => open
* component: undetermined => avformat
* priority: normal => important
* version: unspecified => git-master
* keywords: stream map selection => mpegts regression
* reproduced: 0 => 1
Old description:
> im using a multicast stream as input of ffmpeg, running on Centos 6.3
>
> 10.5 version from rpmfusion can identify the programs on the stream , but
> newer versions do not .
> i test even 10.6 version from rpmfusion and 1.1.1 from sources , with
> same result:
>
> this is the command used :
> # /usr/bin/ffmpeg -i 'udp://@230.20.20.21:32960?overrun_nonfatal=1' -bsf
> h264_mp4toannexb -map 0:p:304:0 -c:v libx264 -preset medium -g 25 -s
> 1280x720 -r 30000/1001 -filter:v yadif -b:v 2000k -bt 200k -map
> 0:p:304:1 -c:a aac -ac 2 -ar 44100 -ab 128k -vol 200 -strict -2 -f
> mpegts test.ts
>
> result with version 10.5 :
>
> ffmpeg version 0.10.5 Copyright (c) 2000-2012 the FFmpeg developers built
> on Oct 7 2012 19:01:46 with gcc 4.4.6 20110731 (Red Hat 4.4.6-3)
> configuration: --prefix=/usr --bindir=/usr/bin
> --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg
> --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --extra-
> cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-
> protector --param=ssp-buffer-size=4 -m64 -mtune=generic' --enable-bzlib
> --disable-crystalhd --enable-gnutls --enable-libass --enable-libcdio
> --enable-libdc1394 --disable-indev=jack --enable-libfreetype --enable-
> libgsm --enable-libmp3lame --enable-openal --enable-libopenjpeg --enable-
> libpulse --enable-librtmp --enable-libschroedinger --enable-libspeex
> --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libx264
> --enable-libxvid --enable-x11grab --enable-avfilter --enable-postproc
> --enable-pthreads --disable-static --enable-shared --enable-gpl
> --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-
> runtime-cpudetect
> libavutil 51. 35.100 / 51. 35.100
> libavcodec 53. 61.100 / 53. 61.100
> libavformat 53. 32.100 / 53. 32.100
> libavdevice 53. 4.100 / 53. 4.100
> libavfilter 2. 61.100 / 2. 61.100
> libswscale 2. 1.100 / 2. 2.100
> libswresample 0. 6.100 / 0. 17.102
> libpostproc 52. 0.100 / 52. 2.100
>
>
> Input #0, mpegts, from 'udp://@230.20.20.21:32960?overrun_nonfatal=1':
> Duration: N/A, start: 27641.679322, bitrate: 704 kb/s
> Program 304
> Metadata:
> service_name : Cinecanal HD
> service_provider:
> Stream #0:11[0x580]: Video: h264 ([27][0][0][0] / 0x001B), 29.97 tbr,
> 90k tbn
> Stream #0:13[0x581]: Audio: ac3 ([6][0][0][0] / 0x0006), 48000 Hz,
> 5.1(side), s16, 384 kb/s
> Stream #0:14[0xbc2](spa): Subtitle: dvb_subtitle ([6][0][0][0] /
> 0x0006)
> Stream #0:15[0xbc3](spa): Unknown: none ([130][0][0][0] / 0x0082)
> Program 305
> Metadata:
> service_name : Universal HD
> service_provider:
> Stream #0:5[0xa00]: Video: h264 (Main) ([27][0][0][0] / 0x001B),
> yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 89.91 fps, 29.97 tbr, 90k tbn,
> 59.94 tbc
> Stream #0:6[0x9d8](spa): Audio: ac3 ([6][0][0][0] / 0x0006), 0
> channels, s16
> Stream #0:7[0x9da](eng): Audio: ac3 ([6][0][0][0] / 0x0006), 48000
> Hz, stereo, s16, 128 kb/s
> Stream #0:8[0x9ee](spa): Subtitle: dvb_subtitle ([6][0][0][0] /
> 0x0006)
> Stream #0:9[0x9ed](eng): Subtitle: dvb_subtitle ([6][0][0][0] /
> 0x0006)
> Stream #0:10[0x9ef](spa): Unknown: none ([130][0][0][0] / 0x0082)
> Program 203
> Metadata:
> service_name : HBO Plus MP-4
> service_provider:
> Stream #0:0[0xa94]: Video: h264 ([27][0][0][0] / 0x001B), 50 tbr, 90k
> tbn, 180k tbc
> Stream #0:1[0xa95](eng): Audio: ac3 (AC-3 / 0x332D4341), 0 channels,
> s16
> Stream #0:2[0xa96](spa): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz,
> stereo, s16, 192 kb/s
> Stream #0:3[0xa97](spa): Unknown: none ([130][0][0][0] / 0x0082)
> Stream #0:4[0xa98](spa): Subtitle: dvb_subtitle ([6][0][0][0] /
> 0x0006)
> Program 301
> Metadata:
> service_name : TV Publica HD
> service_provider:
> Stream #0:16[0x102]: Video: h264 ([27][0][0][0] / 0x001B), 50 tbr,
> 90k tbn
> Stream #0:12[0x103]: Audio: aac_latm ([17][0][0][0] / 0x0011), 0
> channels, s16
>
> ###################
> same command , but with the newly 1.1.1 compiled from source :
> ###################
> ffmpeg version N-49198-g70270f2 Copyright (c) 2000-2013 the FFmpeg
> developers
> built on Jan 23 2013 16:19:29 with gcc 4.4.6 (GCC) 20120305 (Red Hat
> 4.4.6-4)
> configuration: --enable-version3 --enable-libopencore-amrnb --enable-
> libopencore-amrwb --enable-libvpx --enable-libass --enable-bzlib
> --enable-zlib --enable-libfaac --enable-libmp3lame --enable-libtheora
> --enable-libvorbis --enable-libx264 --enable-libvo-aacenc --enable-
> libxvid --disable-ffplay --enable-shared --enable-gpl --enable-postproc
> --enable-nonfree --enable-avfilter --enable-pthreads --extra-cflags=-fPIC
> --arch=x86_64
> libavutil 52. 15.100 / 52. 15.100
> libavcodec 54. 90.100 / 54. 90.100
> libavformat 54. 61.103 / 54. 61.103
> libavdevice 54. 3.102 / 54. 3.102
> libavfilter 3. 33.100 / 3. 33.100
> libswscale 2. 2.100 / 2. 2.100
> libswresample 0. 17.102 / 0. 17.102
> libpostproc 52. 2.100 / 52. 2.100
>
> Input #0, mpegts, from 'udp://@230.20.20.21:32960?overrun_nonfatal=1':
> Duration: N/A, start: 27971.116400, bitrate: 576 kb/s
> Program 304
> Metadata:
> service_name : Cinecanal HD
> service_provider:
> Program 305
> Metadata:
> service_name : Universal HD
> service_provider:
> Program 203
> Metadata:
> service_name : HBO Plus MP-4
> service_provider:
> Stream #0:0[0xa94]: Video: h264 ([27][0][0][0] / 0x001B), 50 tbr, 90k
> tbn, 180k tbc
> Stream #0:1[0xa95](eng): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz,
> stereo, fltp, 192 kb/s
> Stream #0:2[0xa96](spa): Audio: ac3 (AC-3 / 0x332D4341), 0 channels,
> fltp
> Stream #0:3[0xa97](spa): Unknown: none ([130][0][0][0] / 0x0082)
> Stream #0:4[0xa98](spa): Subtitle: dvb_subtitle ([6][0][0][0] /
> 0x0006)
> Program 301
> Metadata:
> service_name : TV Publica HD
> service_provider:
> No Program
> Stream #0:5[0x580]: Video: h264 ([27][0][0][0] / 0x001B), 29.97 tbr,
> 90k tbn
> Stream #0:6[0x581]: Audio: ac3 ([6][0][0][0] / 0x0006), 48000 Hz,
> 5.1(side), fltp, 384 kb/s
> Stream #0:7[0xbc2](spa): Subtitle: dvb_subtitle ([6][0][0][0] /
> 0x0006)
> Stream #0:8[0xbc3](spa): Unknown: none ([130][0][0][0] / 0x0082)
> Stream #0:9[0xa00]: Video: h264 ([27][0][0][0] / 0x001B), 29.97 tbr,
> 90k tbn
> Stream #0:10[0x9d8](spa): Audio: ac3 ([6][0][0][0] / 0x0006), 0
> channels
> Stream #0:11[0x9da](eng): Audio: ac3 ([6][0][0][0] / 0x0006), 0
> channels
> Stream #0:12[0x9ee](spa): Subtitle: dvb_subtitle ([6][0][0][0] /
> 0x0006)
> Stream #0:13[0x9ed](eng): Subtitle: dvb_subtitle ([6][0][0][0] /
> 0x0006)
> Stream #0:14[0x9ef](spa): Unknown: none ([130][0][0][0] / 0x0082)
> Stream #0:15[0x102]: Video: h264 ([27][0][0][0] / 0x001B), 50 tbr,
> 90k tbn
> Stream #0:16[0x103]: Audio: aac_latm ([17][0][0][0] / 0x0011), 0
> channels, fltp
> Stream map '0:p:304:0' matches no streams.
>
> i even try to select the streams from [#0x580] as example , gave me an
> error. trying to select with 0:0 select video stream ramdomly .
>
> of course i like to use the newer version , works better transcoding and
> use less cpu , but i cant to select the right stream
New description:
im using a multicast stream as input of ffmpeg, running on Centos 6.3
10.5 version from rpmfusion can identify the programs on the stream , but
newer versions do not .
i test even 10.6 version from rpmfusion and 1.1.1 from sources , with same
result:
this is the command used :
# /usr/bin/ffmpeg -i 'udp://@230.20.20.21:32960?overrun_nonfatal=1' -bsf
h264_mp4toannexb -map 0:p:304:0 -c:v libx264 -preset medium -g 25 -s
1280x720 -r 30000/1001 -filter:v yadif -b:v 2000k -bt 200k -map
0:p:304:1 -c:a aac -ac 2 -ar 44100 -ab 128k -vol 200 -strict -2 -f
mpegts test.ts
result with version 10.5 :
{{{
ffmpeg version 0.10.5 Copyright (c) 2000-2012 the FFmpeg developers built
on Oct 7 2012 19:01:46 with gcc 4.4.6 20110731 (Red Hat 4.4.6-3)
configuration: --prefix=/usr --bindir=/usr/bin
--datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg
--libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --extra-
cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-
protector --param=ssp-buffer-size=4 -m64 -mtune=generic' --enable-bzlib
--disable-crystalhd --enable-gnutls --enable-libass --enable-libcdio
--enable-libdc1394 --disable-indev=jack --enable-libfreetype --enable-
libgsm --enable-libmp3lame --enable-openal --enable-libopenjpeg --enable-
libpulse --enable-librtmp --enable-libschroedinger --enable-libspeex
--enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libx264
--enable-libxvid --enable-x11grab --enable-avfilter --enable-postproc
--enable-pthreads --disable-static --enable-shared --enable-gpl --disable-
debug --disable-stripping --shlibdir=/usr/lib64 --enable-runtime-cpudetect
libavutil 51. 35.100 / 51. 35.100
libavcodec 53. 61.100 / 53. 61.100
libavformat 53. 32.100 / 53. 32.100
libavdevice 53. 4.100 / 53. 4.100
libavfilter 2. 61.100 / 2. 61.100
libswscale 2. 1.100 / 2. 2.100
libswresample 0. 6.100 / 0. 17.102
libpostproc 52. 0.100 / 52. 2.100
Input #0, mpegts, from 'udp://@230.20.20.21:32960?overrun_nonfatal=1':
Duration: N/A, start: 27641.679322, bitrate: 704 kb/s
Program 304
Metadata:
service_name : Cinecanal HD
service_provider:
Stream #0:11[0x580]: Video: h264 ([27][0][0][0] / 0x001B), 29.97 tbr,
90k tbn
Stream #0:13[0x581]: Audio: ac3 ([6][0][0][0] / 0x0006), 48000 Hz,
5.1(side), s16, 384 kb/s
Stream #0:14[0xbc2](spa): Subtitle: dvb_subtitle ([6][0][0][0] /
0x0006)
Stream #0:15[0xbc3](spa): Unknown: none ([130][0][0][0] / 0x0082)
Program 305
Metadata:
service_name : Universal HD
service_provider:
Stream #0:5[0xa00]: Video: h264 (Main) ([27][0][0][0] / 0x001B),
yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 89.91 fps, 29.97 tbr, 90k tbn,
59.94 tbc
Stream #0:6[0x9d8](spa): Audio: ac3 ([6][0][0][0] / 0x0006), 0
channels, s16
Stream #0:7[0x9da](eng): Audio: ac3 ([6][0][0][0] / 0x0006), 48000 Hz,
stereo, s16, 128 kb/s
Stream #0:8[0x9ee](spa): Subtitle: dvb_subtitle ([6][0][0][0] /
0x0006)
Stream #0:9[0x9ed](eng): Subtitle: dvb_subtitle ([6][0][0][0] /
0x0006)
Stream #0:10[0x9ef](spa): Unknown: none ([130][0][0][0] / 0x0082)
Program 203
Metadata:
service_name : HBO Plus MP-4
service_provider:
Stream #0:0[0xa94]: Video: h264 ([27][0][0][0] / 0x001B), 50 tbr, 90k
tbn, 180k tbc
Stream #0:1[0xa95](eng): Audio: ac3 (AC-3 / 0x332D4341), 0 channels,
s16
Stream #0:2[0xa96](spa): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz,
stereo, s16, 192 kb/s
Stream #0:3[0xa97](spa): Unknown: none ([130][0][0][0] / 0x0082)
Stream #0:4[0xa98](spa): Subtitle: dvb_subtitle ([6][0][0][0] /
0x0006)
Program 301
Metadata:
service_name : TV Publica HD
service_provider:
Stream #0:16[0x102]: Video: h264 ([27][0][0][0] / 0x001B), 50 tbr, 90k
tbn
Stream #0:12[0x103]: Audio: aac_latm ([17][0][0][0] / 0x0011), 0
channels, s16
}}}
###################
same command , but with the newly 1.1.1 compiled from source :
###################
{{{
ffmpeg version N-49198-g70270f2 Copyright (c) 2000-2013 the FFmpeg
developers
built on Jan 23 2013 16:19:29 with gcc 4.4.6 (GCC) 20120305 (Red Hat
4.4.6-4)
configuration: --enable-version3 --enable-libopencore-amrnb --enable-
libopencore-amrwb --enable-libvpx --enable-libass --enable-bzlib --enable-
zlib --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-
libvorbis --enable-libx264 --enable-libvo-aacenc --enable-libxvid
--disable-ffplay --enable-shared --enable-gpl --enable-postproc --enable-
nonfree --enable-avfilter --enable-pthreads --extra-cflags=-fPIC
--arch=x86_64
libavutil 52. 15.100 / 52. 15.100
libavcodec 54. 90.100 / 54. 90.100
libavformat 54. 61.103 / 54. 61.103
libavdevice 54. 3.102 / 54. 3.102
libavfilter 3. 33.100 / 3. 33.100
libswscale 2. 2.100 / 2. 2.100
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 2.100 / 52. 2.100
Input #0, mpegts, from 'udp://@230.20.20.21:32960?overrun_nonfatal=1':
Duration: N/A, start: 27971.116400, bitrate: 576 kb/s
Program 304
Metadata:
service_name : Cinecanal HD
service_provider:
Program 305
Metadata:
service_name : Universal HD
service_provider:
Program 203
Metadata:
service_name : HBO Plus MP-4
service_provider:
Stream #0:0[0xa94]: Video: h264 ([27][0][0][0] / 0x001B), 50 tbr, 90k
tbn, 180k tbc
Stream #0:1[0xa95](eng): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz,
stereo, fltp, 192 kb/s
Stream #0:2[0xa96](spa): Audio: ac3 (AC-3 / 0x332D4341), 0 channels,
fltp
Stream #0:3[0xa97](spa): Unknown: none ([130][0][0][0] / 0x0082)
Stream #0:4[0xa98](spa): Subtitle: dvb_subtitle ([6][0][0][0] /
0x0006)
Program 301
Metadata:
service_name : TV Publica HD
service_provider:
No Program
Stream #0:5[0x580]: Video: h264 ([27][0][0][0] / 0x001B), 29.97 tbr,
90k tbn
Stream #0:6[0x581]: Audio: ac3 ([6][0][0][0] / 0x0006), 48000 Hz,
5.1(side), fltp, 384 kb/s
Stream #0:7[0xbc2](spa): Subtitle: dvb_subtitle ([6][0][0][0] /
0x0006)
Stream #0:8[0xbc3](spa): Unknown: none ([130][0][0][0] / 0x0082)
Stream #0:9[0xa00]: Video: h264 ([27][0][0][0] / 0x001B), 29.97 tbr,
90k tbn
Stream #0:10[0x9d8](spa): Audio: ac3 ([6][0][0][0] / 0x0006), 0
channels
Stream #0:11[0x9da](eng): Audio: ac3 ([6][0][0][0] / 0x0006), 0
channels
Stream #0:12[0x9ee](spa): Subtitle: dvb_subtitle ([6][0][0][0] /
0x0006)
Stream #0:13[0x9ed](eng): Subtitle: dvb_subtitle ([6][0][0][0] /
0x0006)
Stream #0:14[0x9ef](spa): Unknown: none ([130][0][0][0] / 0x0082)
Stream #0:15[0x102]: Video: h264 ([27][0][0][0] / 0x001B), 50 tbr, 90k
tbn
Stream #0:16[0x103]: Audio: aac_latm ([17][0][0][0] / 0x0011), 0
channels, fltp
Stream map '0:p:304:0' matches no streams.
}}}
i even try to select the streams from [#0x580] as example , gave me an
error. trying to select with 0:0 select video stream ramdomly .
of course i like to use the newer version , works better transcoding and
use less cpu , but i cant to select the right stream
--
Comment:
Regression since 4c41fc8.
Until this is fixed, you can use version 1.0.3.
--
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/2186#comment:1>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list