[FFmpeg-user] Metadata text length
Richard F
lists at keynet-technology.com
Mon Mar 18 23:37:50 EET 2019
On 18/03/2019 20:25, Moritz Barsnick wrote:
> On Mon, Mar 18, 2019 at 19:40:41 +0000, FFmpeg user discussions wrote:
>> I think the patch here: https://patchwork.ffmpeg.org/patch/12047 has
>> introduced a limit to the length of plain ASCII text that can be written
>> into mpegts metadata fields. I'm seeing ffmpeg exit when trying to write
>> a string of more than ~150 characters with "Too long service or provider
>> name".
> You should show us your actual command line and its complete, uncut
> console output.
This is the 2nd stage of a 2 stage conversion, the last stage concats
intermediate files when needed, manipulates stream order and adds
metadata for several formats when required (hence a lot of unnecessary
metadata for ts or m2ts formats - but same result).
Removing the excess metadata makes no difference, the code takes the
long "title" string and tries to put it into "service name" by my
reading. ~150 char seems to be the limit (previously didn't hit a
limit). The long Title and other tags are used in other formats like
mkv and m4a podcasts.
Obvious workaround - I just want to know what number to truncate to, it
seems rather less than 254, without UTF chars.
ffmpeg -y -probesize 250M -analyzeduration 600M -copytb 1 -i
concat:"/mnt/lvm/TV/Great_Continental_Railway_Journeys/Warsaw_to_Krakow_-_Part_2/2019-03-13.18.30.3-0.rec/intermediate-file-1.ts|"
-metadata service_provider="BBC TWO" -metadata title="Great
Continental Railway Journeys-Warsaw to Krakow - Part
2-EP:EP016377310044-2019-03-13-Wed_18-30: Beginning in Warsaw, Michael
is puzzled by how a city famously razed to the ground after the Second
World War can appear so beautifully preserved. He hitches a ride in a
1913 carriage to discover one of the secrets of its restoration."
-metadata year="2019" -metadata date="2019" -metadata
album="2019" -metadata track="11" -metadata author="Michael
Portillo" -metadata artist="Michael Portillo" -metadata
album_artist="Great Continental Railway Journeys" -metadata
genre="A1" -metadata episode_id="EP016377310044" -metadata
show="Great Continental Railway Journeys" -metadata
description="Beginning in Warsaw, Michael is puzzled by how a city
famously razed to the ground after the Second World War can appear so
beautifully preserved. He hitches a ride in a 1913 carriage to discover
one of the secrets of its restoration." -metadata
comment="Beginning in Warsaw, Michael is puzzled by how a city famously
razed to the ground after the Second World War can appear so beautifully
preserved. He hitches a ride in a 1913 carriage to discover one of the
secrets of its restoration." -metadata language="eng"
-metadata publisher="BBC TWO" -c copy -flags +global_header
-map 0:0 -map 0:1
"/mnt/lvm/TV/Great_Continental_Railway_Journeys/Warsaw_to_Krakow_-_Part_2/Great
Continental Railway Journeys-Warsaw to Krakow - Part
2-EP-EP016377310044-2019-03-13-Wed_18-30-SD.m2ts" 2>> /var/log/tmp.log
ffmpeg version N-93395-g15d016be30 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 4.8 (SUSE Linux)
configuration: --extra-cflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g' --optflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g' --disable-htmlpages --disable-doc --enable-libx264 --enable-libopus --enable-libopenjpeg --enable-libwebp --enable-gpl --enable-libx265 --enable-libfdk_aac --enable-libmp3lame --enable-libsoxr --enable-nonfree --disable-debug --logfile=log
libavutil 56. 26.100 / 56. 26.100
libavcodec 58. 47.103 / 58. 47.103
libavformat 58. 26.101 / 58. 26.101
libavdevice 58. 6.101 / 58. 6.101
libavfilter 7. 48.100 / 7. 48.100
libswscale 5. 4.100 / 5. 4.100
libswresample 3. 4.100 / 3. 4.100
libpostproc 55. 4.100 / 55. 4.100
Input #0, mpegts, from 'concat:/mnt/lvm/TV/Great_Continental_Railway_Journeys/Warsaw_to_Krakow_-_Part_2/2019-03-13.18.30.3-0.rec/intermediate-file-1.ts|':
Duration: 00:02:00.32, start: 1.400000, bitrate: 228 kb/s
Program 1
Metadata:
service_name : Service01
service_provider: FFmpeg
Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(top first), 704x576 [SAR 16:11 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1[0x101](eng): Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 136 kb/s
[mpegts @ 0x344a780] Too long service or provider name
Could not write header for output file #0 (incorrect codec parameters ?): Cannot allocate memory
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Last message repeated 1 times
>> Is there a designed or documented limit - I can't see one from a brief
>> look at the code, perhaps I'm missing something ?
> From a quick glance, it looks like it's implemented as 254, but
> multibyte characters (such as UTF-8) count as just that, multiple
> bytes.
>
> Moritz
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
More information about the ffmpeg-user
mailing list