[FFmpeg-trac] #7946(ffmpeg:new): drawtext %{metadata:key} can only pull manually entered tags
FFmpeg
trac at avcodec.org
Fri Jun 7 01:36:31 EEST 2019
#7946: drawtext %{metadata:key} can only pull manually entered tags
-------------------------------------+-------------------------------------
Reporter: | Type:
electron.rotoscope | enhancement
Status: new | Priority: minor
Component: ffmpeg | Version:
Keywords: drawtext | unspecified
metadata | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Summary of the bug:
ffmpeg's drawtext filter supports text expansion for metadata, but it only
seems to be able to read keys that show up in ffprobe packet outputs
prepended by "TAG:", which are rare. (I can only find them if I manually
insert them via a concat list)
It would be useful to be able to access other packet metadata (e.g. size
of current packet) the same way %{n} and %{pts} work.
How to reproduce:
Running the latest ffmpeg on windows, if I don't create a
"file_packet_metadata" line in a concat list, there's nothing the
%{metadata} can access. It can't access any of the other information that
shows up with ffprobe -show_packets
{{{
C:\ffmpeg>echo file 'C:\ffmpeg\testfile.mov' > catjustfile.txt
C:\ffmpeg>ffprobe -f concat -safe 0 -show_packets -read_intervals "%+#1"
catjustfile.txt
ffprobe version N-93994-gd81913e680 Copyright (c) 2007-2019 the FFmpeg
developers
built with gcc 8.3.1 (GCC) 20190414
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-
fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-
libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame
--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
--enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr
--enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack
--enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2
--enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-
libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa
--enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx
--enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-
nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
libavutil 56. 28.100 / 56. 28.100
libavcodec 58. 52.102 / 58. 52.102
libavformat 58. 27.103 / 58. 27.103
libavdevice 58. 7.100 / 58. 7.100
libavfilter 7. 55.100 / 7. 55.100
libswscale 5. 4.101 / 5. 4.101
libswresample 3. 4.100 / 3. 4.100
libpostproc 55. 4.100 / 55. 4.100
Input #0, concat, from 'catjustfile.txt':
Duration: N/A, start: 0.000000, bitrate: 57 kb/s
Stream #0:0(eng): Video: prores (Proxy) (apco / 0x6F637061),
yuv422p10le(tv, smpte170m/unknown/unknown, progressive), 64x64, 57 kb/s,
25 fps, 25 tbr, 25 tbn, 25 tbc
Metadata:
creation_time : 2019-06-06T23:17:35.000000Z
handler_name : Apple Video Media Handler
encoder : Apple ProRes 422 (Proxy)
[PACKET]
codec_type=video
stream_index=0
pts=0
pts_time=0.000000
dts=0
dts_time=0.000000
duration=1
duration_time=0.040000
convergence_duration=N/A
convergence_duration_time=N/A
size=288
pos=1569
flags=K_
[/PACKET]
C:\ffmpeg>ffmpeg -f concat -safe 0 -i catjustfile.txt -vf
"drawtext=text='%{metadata\:manualkey\:notfound}'" -vframes 1 -y
"out1.png"
ffmpeg version N-93994-gd81913e680 Copyright (c) 2000-2019 the FFmpeg
developers
built with gcc 8.3.1 (GCC) 20190414
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-
fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-
libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame
--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
--enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr
--enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack
--enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2
--enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-
libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa
--enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx
--enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-
nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
libavutil 56. 28.100 / 56. 28.100
libavcodec 58. 52.102 / 58. 52.102
libavformat 58. 27.103 / 58. 27.103
libavdevice 58. 7.100 / 58. 7.100
libavfilter 7. 55.100 / 7. 55.100
libswscale 5. 4.101 / 5. 4.101
libswresample 3. 4.100 / 3. 4.100
libpostproc 55. 4.100 / 55. 4.100
Input #0, concat, from 'catjustfile.txt':
Duration: N/A, start: 0.000000, bitrate: 57 kb/s
Stream #0:0(eng): Video: prores (Proxy) (apco / 0x6F637061),
yuv422p10le(tv, smpte170m/unknown/unknown, progressive), 64x64, 57 kb/s,
25 fps, 25 tbr, 25 tbn, 25 tbc
Metadata:
creation_time : 2019-06-06T23:17:35.000000Z
handler_name : Apple Video Media Handler
encoder : Apple ProRes 422 (Proxy)
Stream mapping:
Stream #0:0 -> #0:0 (prores (native) -> png (native))
Press [q] to stop, [?] for help
Fontconfig error: Cannot load default config file
[Parsed_drawtext_0 @ 000000000064c6c0] Using
"C:/Windows/fonts/mingliu.ttc"
Output #0, image2, to 'out1.png':
Metadata:
encoder : Lavf58.27.103
Stream #0:0(eng): Video: png, rgb48be, 64x64, q=2-31, 200 kb/s, 25
fps, 25 tbn, 25 tbc
Metadata:
creation_time : 2019-06-06T23:17:35.000000Z
handler_name : Apple Video Media Handler
encoder : Lavc58.52.102 png
frame= 1 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.04 bitrate=N/A speed=
2.5x
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: unknown
C:\ffmpeg>echo file 'C:\ffmpeg\testfile.mov' > catmanualentry.txt && echo
file_packet_metadata manualkey=manualentry >> catmanualentry.txt
C:\ffmpeg>ffprobe -f concat -safe 0 -show_packets -read_intervals "%+#1"
catmanualentry.txt
ffprobe version N-93994-gd81913e680 Copyright (c) 2007-2019 the FFmpeg
developers
built with gcc 8.3.1 (GCC) 20190414
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-
fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-
libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame
--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
--enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr
--enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack
--enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2
--enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-
libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa
--enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx
--enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-
nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
libavutil 56. 28.100 / 56. 28.100
libavcodec 58. 52.102 / 58. 52.102
libavformat 58. 27.103 / 58. 27.103
libavdevice 58. 7.100 / 58. 7.100
libavfilter 7. 55.100 / 7. 55.100
libswscale 5. 4.101 / 5. 4.101
libswresample 3. 4.100 / 3. 4.100
libpostproc 55. 4.100 / 55. 4.100
Input #0, concat, from 'catmanualentry.txt':
Duration: N/A, start: 0.000000, bitrate: 57 kb/s
Stream #0:0(eng): Video: prores (Proxy) (apco / 0x6F637061),
yuv422p10le(tv, smpte170m/unknown/unknown, progressive), 64x64, 57 kb/s,
25 fps, 25 tbr, 25 tbn, 25 tbc
Metadata:
creation_time : 2019-06-06T23:17:35.000000Z
handler_name : Apple Video Media Handler
encoder : Apple ProRes 422 (Proxy)
[PACKET]
codec_type=video
stream_index=0
pts=0
pts_time=0.000000
dts=0
dts_time=0.000000
duration=1
duration_time=0.040000
convergence_duration=N/A
convergence_duration_time=N/A
size=288
pos=1569
flags=K_
TAG:manualkey=manualentry
[SIDE_DATA]
side_data_type=Strings Metadata
[/SIDE_DATA]
[/PACKET]
C:\ffmpeg>ffmpeg -f concat -safe 0 -i catmanualentry.txt -vf
"drawtext=text='%{metadata\:manualkey\:notfound}'" -vframes 1 -y
"out2.png"
ffmpeg version N-93994-gd81913e680 Copyright (c) 2000-2019 the FFmpeg
developers
built with gcc 8.3.1 (GCC) 20190414
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-
fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-
libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame
--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
--enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr
--enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack
--enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2
--enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-
libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa
--enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx
--enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-
nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
libavutil 56. 28.100 / 56. 28.100
libavcodec 58. 52.102 / 58. 52.102
libavformat 58. 27.103 / 58. 27.103
libavdevice 58. 7.100 / 58. 7.100
libavfilter 7. 55.100 / 7. 55.100
libswscale 5. 4.101 / 5. 4.101
libswresample 3. 4.100 / 3. 4.100
libpostproc 55. 4.100 / 55. 4.100
Input #0, concat, from 'catmanualentry.txt':
Duration: N/A, start: 0.000000, bitrate: 57 kb/s
Stream #0:0(eng): Video: prores (Proxy) (apco / 0x6F637061),
yuv422p10le(tv, smpte170m/unknown/unknown, progressive), 64x64, 57 kb/s,
25 fps, 25 tbr, 25 tbn, 25 tbc
Metadata:
creation_time : 2019-06-06T23:17:35.000000Z
handler_name : Apple Video Media Handler
encoder : Apple ProRes 422 (Proxy)
Stream mapping:
Stream #0:0 -> #0:0 (prores (native) -> png (native))
Press [q] to stop, [?] for help
Fontconfig error: Cannot load default config file
[Parsed_drawtext_0 @ 000000000057e740] Using
"C:/Windows/fonts/mingliu.ttc"
Output #0, image2, to 'out2.png':
Metadata:
encoder : Lavf58.27.103
Stream #0:0(eng): Video: png, rgb48be, 64x64, q=2-31, 200 kb/s, 25
fps, 25 tbn, 25 tbc
Metadata:
creation_time : 2019-06-06T23:17:35.000000Z
handler_name : Apple Video Media Handler
encoder : Lavc58.52.102 png
frame= 1 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.04 bitrate=N/A
speed=1.48x
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: unknown
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/7946>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list