[FFmpeg-devel] [PATCH] Add option to log timing
Michael Niedermayer
michael at niedermayer.cc
Fri Sep 6 21:55:47 EEST 2019
On Wed, Sep 04, 2019 at 07:35:11PM +0000, Soft Works wrote:
>
> > Why this restriction? I think all log lines should be start with
> > time/date if corresponding flag is present. This makes the log to be
> > easy to parse by scripts.
>
> Initially I didn’t have this restriction, but it doesn’t work well together with some multi-line logging.
> See below for an example.
>
> To get this nice, it would require a larger amount of changes, and probably result in something that nobody wants to merge in.
>
> Anyway, there’s a flag controlling this behavior and if you really want, you can set it.
> Then you’ll see something like this:
>
>
> 18:59:04.449 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file:xxxxxxx.mp4':
> 18:59:04.449 Metadata:
> major_brand : isom18:59:04.449
> minor_version : 51218:59:04.449
> compatible_brands: isomiso2avc1mp4118:59:04.449
> encoder : Lavf58.12.10018:59:04.449
> Duration: 00:20:52.72, start: 0.000000, bitrate: 1386 kb/s18:59:04.449
> Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 612 kb/s, Level 30, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)18:59:04.449
> 18:59:04.449 Metadata:
> handler_name : VideoHandler18:59:04.449
> Stream #0:1(ger): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 381 kb/s (default)18:59:04.449
> 18:59:04.449 Metadata:
> handler_name : SoundHandler18:59:04.449
> Stream #0:2(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 382 kb/s18:59:04.449
> 18:59:04.449 Metadata:
> handler_name : SoundHandler18:59:04.449
> 18:59:04.737 Stream mapping:
> Stream #0:0 (h264_cuvid) -> scale_cuda (graph 0)18:59:04.737
> scale_cuda (graph 0)18:59:04.737 -> Stream #0:0 (h264_nvenc)
> Stream #0:1 -> #0:1 (aac (native) -> mp3 (libmp3lame))18:59:04.737
i just enabled prefixes for all calls, and i get this:
[] libavutil 56. 35.100 / 56. 35.100
[] libavcodec 58. 56.101 / 58. 56.101
[] libavformat 58. 32.104 / 58. 32.104
[] libavdevice 58. 9.100 / 58. 9.100
[] libavfilter 7. 58.102 / 7. 58.102
[] libswscale 5. 6.100 / 5. 6.100
[] libswresample 3. 6.100 / 3. 6.100
[] libpostproc 55. 6.100 / 55. 6.100
[mpeg @ 0x3334f80] start time for stream 0 is not set in estimate_timings_from_pts
[] Input #0, mpeg, from 'matrixbench_mpeg2.mpg':
[] Duration: 00:03:07.66, start: 0.220000, bitrate: 5633 kb/s
[] Stream #0:0[0x1bf]: Data: dvd_nav_packet
[] Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, bt470bg/bt470m/bt470m, bottom first), 720x576 [SAR 16:15 DAR 4:3], 25 fps, 25 tbr, 90k tbn, 50 tbc
[] Stream #0:2[0x1c0]: Audio: mp2, 48000 Hz, stereo, s16p, 384 kb/s
File 'test.avi' already exists. Overwrite ? [y/N] [] y
Stream mapping:
[] Stream #0:1 -> #0:0 (mpeg2video (native) -> mpeg4 (native))
[] Stream #0:2 -> #0:1 (mp2 (native) -> mp3 (libmp3lame))
[] Press [q] to stop, [?] for help
[] Output #0, avi, to 'test.avi':
[] Metadata:
[] ISFT : Lavf58.32.104
[] Stream #0:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 720x576 [SAR 16:15 DAR 4:3], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
[] Metadata:
[] encoder : Lavc58.56.101 mpeg4
[] Side data:
[] cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
[] Stream #0:1: Audio: mp3 (libmp3lame) (U[0][0][0] / 0x0055), 48000 Hz, stereo, s16p
[] Metadata:
[] encoder : Lavc58.56.101 libmp3lame
[] frame= 1069 fps=710 q=24.8 Lsize= 2255kB time=00:00:42.76 bitrate= 432.0kbits/s speed=28.4x
[] video:1511kB audio:667kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 3.539204%
This looks much better than your example, so i have to disagree that
theres a problem for calls during startup or some requirment of high
complexity
diff --git a/libavutil/log.c b/libavutil/log.c
index 93a156b8e4..5109c773bd 100644
--- a/libavutil/log.c
+++ b/libavutil/log.c
@@ -266,7 +266,9 @@ static void format_line(void *avcl, int level, const char *fmt, va_list vl,
av_bprintf(part+1, "[%s @ %p] ",
avc->item_name(avcl), avcl);
if(type) type[1] = get_category(avcl);
- }
+ } else if (*print_prefix)
+ av_bprintf(part+1, "[] ");
+
if (*print_prefix && (level > AV_LOG_QUIET) && (flags & AV_LOG_PRINT_LEVEL))
av_bprintf(part+2, "[%s] ", get_level_str(level));
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Why not whip the teacher when the pupil misbehaves? -- Diogenes of Sinope
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20190906/04585b5f/attachment.sig>
More information about the ffmpeg-devel
mailing list