[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