[FFmpeg-trac] #7293(avformat:new): rtp_mpegts muxer: metadata is dropped

FFmpeg trac at avcodec.org
Mon Jul 2 12:22:22 EEST 2018


#7293: rtp_mpegts muxer: metadata is dropped
-------------------------------------+-------------------------------------
             Reporter:  barsnick     |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:  avformat     |                  Version:
             Keywords:  mpegts,      |  unspecified
  rtp_mpegts                         |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:
 The rtp_mpegts muxer does not provide metadata from the demuxer or from
 the user's command line to its output stream.

 Reported here:
 http://ffmpeg.org/pipermail/ffmpeg-user/2018-June/040383.html
 with more logs here:
 http://ffmpeg.org/pipermail/ffmpeg-user/2018-July/040416.html

 How to reproduce:
 {{{
 $ ffmpeg -f lavfi -i testsrc2 -metadata "service_name=Some Channel Name"
 -c:v libx264 -f rtp_mpegts rtp://127.0.0.1:5000?pkt_size=1316
 $ ffmpeg -i rtp://127.0.0.1:5000?pkt_size=1316
 }}}

 Actual output of the second command:
 {{{
 Input #0, rtp, from 'rtp://127.0.0.1:5000?pkt_size=1316':
   Duration: N/A, start: 26.640000, bitrate: N/A
   Program 1
     Metadata:
       service_name    : Service01
       service_provider: FFmpeg
     Stream #0:0: Video: h264 (High) ([27][0][0][0] / 0x001B),
 yuv420p(progressive), 320x240 [SAR 1:1 DAR 4:3], 25 fps, 25 tbr, 90k tbn,
 50 tbc
 At least one output file must be specified
 }}}

 Expected output of the second command:
 {{{
 Input #0, rtp, from 'rtp://127.0.0.1:5000?pkt_size=1316':
   Duration: N/A, start: 30.920000, bitrate: N/A
   Program 1
     Metadata:
       service_name    : Some Channel Name
       service_provider: FFmpeg
     Stream #0:0: Video: h264 (High) ([27][0][0][0] / 0x001B),
 yuv420p(progressive), 320x240 [SAR 1:1 DAR 4:3], 25 fps, 25 tbr, 90k tbn,
 50 tbc
 At least one output file must be specified
 }}}

 For completeness, the output of the first command:
 {{{
 ffmpeg version N-91361-g387464bea Copyright (c) 2000-2018 the FFmpeg
 developers
   built with icc (ICC) 14.0.3 20140422
   configuration: --prefix=/usr/new/tools/video/install/ffmpeg/2018-06-25
 --cc=icc --cxx=icpc --enable-gpl --enable-version3 --enable-nonfree
 --disable-shared --enable-gnu
 tls --enable-libcdio --enable-libfreetype --enable-libx264 --enable-libvpx
 --enable-libmp3lame --enable-openal --enable-libopencore-amrnb --enable-
 libopencore-amrwb --ena
 ble-libtwolame --enable-librtmp --enable-libass --enable-libv4l2 --enable-
 libvidstab --enable-libfdk-aac --enable-libsmbclient --enable-libzvbi
 --enable-libtesseract --en
 able-libzmq --enable-libopus --enable-libcodec2 --enable-libxml2
   libavutil      56. 18.102 / 56. 18.102
   libavcodec     58. 20.103 / 58. 20.103
   libavformat    58. 17.101 / 58. 17.101
   libavdevice    58.  4.101 / 58.  4.101
   libavfilter     7. 25.100 /  7. 25.100
   libswscale      5.  2.100 /  5.  2.100
   libswresample   3.  2.100 /  3.  2.100
   libpostproc    55.  2.100 / 55.  2.100
 Input #0, lavfi, from 'testsrc2':
   Duration: N/A, start: 0.000000, bitrate: N/A
     Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 320x240
 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc
 Stream mapping:
   Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
 Press [q] to stop, [?] for help
 [libx264 @ 0xa988640] using SAR=1/1
 [libx264 @ 0xa988640] using cpu capabilities: MMX2 SSE2 Cache64
 [libx264 @ 0xa988640] profile High, level 1.3
 [mpegts @ 0xae69cc0] DEBUG: service_name = Service01, provider_name =
 FFmpeg
 Output #0, rtp_mpegts, to 'rtp://127.0.0.1:5000?pkt_size=1316':
   Metadata:
     service_name    : Some Channel Name
     encoder         : Lavf58.17.101
     Stream #0:0: Video: h264 (libx264), yuv420p, 320x240 [SAR 1:1 DAR
 4:3], q=-1--1, 25 fps, 90k tbn, 25 tbc
     Metadata:
       encoder         : Lavc58.20.103 libx264
     Side data:
       cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
 frame=  257 fps= 63 q=-1.0 Lsize=     347kB time=00:00:10.16 bitrate=
 280.2kbits/s speed=2.48x
 video:347kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: 18.231230%
 [libx264 @ 0xa988640] frame I:2     Avg QP:19.57  size:  5383
 [libx264 @ 0xa988640] frame P:76    Avg QP:26.63  size:  1931
 [libx264 @ 0xa988640] frame B:179   Avg QP:31.53  size:  1108
 [libx264 @ 0xa988640] consecutive B-frames:  4.7%  5.4%  5.8% 84.0%
 [libx264 @ 0xa988640] mb I  I16..4: 40.5% 32.3% 27.2%
 [libx264 @ 0xa988640] mb P  I16..4:  2.3%  5.1%  1.1%  P16..4: 13.1% 10.3%
 6.9%  0.0%  0.0%    skip:61.1%
 [libx264 @ 0xa988640] mb B  I16..4:  0.2%  0.2%  0.1%  B16..8: 20.0%  7.3%
 2.0%  direct: 2.5%  skip:67.6%  L0:51.8% L1:43.0% BI: 5.3%
 [libx264 @ 0xa988640] 8x8 transform intra:52.1% inter:31.9%
 [libx264 @ 0xa988640] coded y,uvDC,uvAC intra: 10.5% 27.9% 24.2% inter:
 5.3% 14.8% 12.3%
 [libx264 @ 0xa988640] i16 v,h,dc,p: 73% 22%  6%  0%
 [libx264 @ 0xa988640] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu:  7% 10% 82%  1%  0%
 0%  0%  0%  0%
 [libx264 @ 0xa988640] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 42% 21% 32%  1%  1%
 1%  1%  1%  1%
 [libx264 @ 0xa988640] i8c dc,h,v,p: 55% 15% 28%  1%
 [libx264 @ 0xa988640] Weighted P-Frames: Y:0.0% UV:0.0%
 [libx264 @ 0xa988640] ref P L0: 55.1%  7.0% 22.5% 15.4%
 [libx264 @ 0xa988640] ref B L0: 79.6% 16.3%  4.1%
 [libx264 @ 0xa988640] ref B L1: 92.3%  7.7%
 [libx264 @ 0xa988640] kb/s:276.90
 }}}

 The issue is presumably that, in
 rtpenc_mpegts.c:rtp_mpegts_write_header(), the metadata needs to be copied
 from AVFormatContext *s to AVFormatContext *mpegts_ctx. The latter is
 passed to avformat_new_stream(), which initializes the mpegts muxer, where
 the metadata is evaluated.

--
Ticket URL: <https://trac.ffmpeg.org/ticket/7293>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list