[FFmpeg-user] How can I pipe ffmpeg listing?

Mark Filipak markfilipak.windows+ffmpeg at gmail.com
Wed Feb 5 20:42:23 EET 2020


On 02/05/2020 09:37 AM, Moritz Barsnick wrote:

Hi, Moritz, and Thanks.

> On Tue, Feb 04, 2020 at 23:17:28 -0500, Mark Filipak wrote:
>> This:
>>    >ffmpeg -ss 2:00 -i g:\VIDEO_TS\VTS_02_2.VOB -filter:v idet -frames:v
>> 900 -an -f rawvideo -y NUL
>> produces the listing at the bottom -- it is that listing that I'm trying
>> to pipe.
> 
> With "listing", do you mean these lines?
>> [Parsed_idet_0 @ 0000015ef0c72840] Repeated Fields: Neither:   772 Top:    66 Bottom:    63
>> [Parsed_idet_0 @ 0000015ef0c72840] Single frame detection: TFF:   687 BFF:     1 Progressive:   159 Undetermined:    54
>> [Parsed_idet_0 @ 0000015ef0c72840] Multi frame detection: TFF:   901 BFF:     0 Progressive:     0 Undetermined:     0
> 
> These are emitted by the idet filter using ffmpeg's logging mechanism,
> which goes to stderr (the shell's standard error stream). You cannot
> change that target from the ffmpeg command line tool.
> 
>> Redirection to a file doesn't work, either.
> 
> To capture the log messages behind a '|' pipe, you need to redirect the
> stderr stream to stdout. I have no idea how to do that on Windows. A
> search on the net tells me to use "2>&1", like in a Unix Bourne shell.

Thanks! This:
ffmpeg -ss 2:00 -i %1 -filter:v idet -frames:v 900 -an -f rawvideo -y 
NUL 2>&1 | FINDSTR "Parsed_idet"
works. (At the bottom of this message is my script and its output.)

What I'm trying to do is find where a video switches between hard- & 
soft-telecine. I could dump the applicable frame metadata

progressive_sequence
picture_structure
top_field_first
repeat_first_field
progressive_frame

and interpret the dump via a script, but I haven't found a way to dump 
the metadata.

Thanks for your help.

===== SCRIPT =====

@ECHO.
@ECHO ======================= 2 minutes =======================
@ffmpeg -hide_banner -ss 2:00 -i %1 -filter:v idet -frames:v 900 -an -f 
rawvideo -y NUL 2>&1 | FINDSTR "Input Output Video: frame= Parsed_idet"
@ECHO.
@ECHO ======================= 6 minutes =======================
@ffmpeg -hide_banner -ss 6:00 -i %1 -filter:v idet -frames:v 900 -an -f 
rawvideo -y NUL 2>&1 | FINDSTR "Input Output Video: frame= Parsed_idet"
@ECHO.
@ECHO ====================== 10 minutes =======================
@ffmpeg -hide_banner -ss 10:00 -i %1 -filter:v idet -frames:v 900 -an -f 
rawvideo -y NUL 2>&1 | FINDSTR "Input Output Video: frame= Parsed_idet"
@ECHO.
@ECHO ====================== 14 minutes =======================
@ffmpeg -hide_banner -ss 14:00 -i %1 -filter:v idet -frames:v 900 -an -f 
rawvideo -y NUL 2>&1 | FINDSTR "Input Output Video: frame= Parsed_idet"
@ECHO.
@ECHO ====================== 18 minutes =======================
@ffmpeg -hide_banner -ss 18:00 -i %1 -filter:v idet -frames:v 900 -an -f 
rawvideo -y NUL 2>&1 | FINDSTR "Input Output Video: frame= Parsed_idet"
@ECHO.
@CMD /K

===== SCRIPT OUTPUT =====

======================= 2 minutes =======================
Input #0, mpeg, from 'G:\VIDEO_TS\VTS_02_2.VOB':
     Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, top 
first), 720x480 [SAR 32:27 DAR 16:9], Closed Captions, 29.97 fps, 29.97 
tbr, 90k tbn, 59.94 tbc
Output #0, rawvideo, to 'NUL':
     Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 720x480 
[SAR 32:27 DAR 16:9], q=2-31, 124291 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc
frame=  900 fps=0.0 q=-0.0 Lsize=  455625kB time=00:00:30.03 
bitrate=124291.7kbits/s speed=43.8x
[Parsed_idet_0 @ 00000258997ba500] Repeated Fields: Neither:   772 Top: 
   66 Bottom:    63
[Parsed_idet_0 @ 00000258997ba500] Single frame detection: TFF:   687 
BFF:     1 Progressive:   159 Undetermined:    54
[Parsed_idet_0 @ 00000258997ba500] Multi frame detection: TFF:   901 
BFF:     0 Progressive:     0 Undetermined:     0

======================= 6 minutes =======================
Input #0, mpeg, from 'G:\VIDEO_TS\VTS_02_2.VOB':
     Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, top 
first), 720x480 [SAR 32:27 DAR 16:9], Closed Captions, 29.97 fps, 29.97 
tbr, 90k tbn, 59.94 tbc
Output #0, rawvideo, to 'NUL':
     Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 720x480 
[SAR 32:27 DAR 16:9], q=2-31, 124291 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc
frame=  900 fps=0.0 q=-0.0 Lsize=  455625kB time=00:00:30.03 
bitrate=124291.7kbits/s speed=  41x
[Parsed_idet_0 @ 00000213df83a500] Repeated Fields: Neither:   650 Top: 
  128 Bottom:   123
[Parsed_idet_0 @ 00000213df83a500] Single frame detection: TFF:   714 
BFF:     0 Progressive:   169 Undetermined:    18
[Parsed_idet_0 @ 00000213df83a500] Multi frame detection: TFF:   900 
BFF:     0 Progressive:     0 Undetermined:     1

====================== 10 minutes =======================
Input #0, mpeg, from 'G:\VIDEO_TS\VTS_02_2.VOB':
     Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, top 
first), 720x480 [SAR 32:27 DAR 16:9], Closed Captions, 29.97 fps, 29.97 
tbr, 90k tbn, 59.94 tbc
Output #0, rawvideo, to 'NUL':
     Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 720x480 
[SAR 32:27 DAR 16:9], q=2-31, 124291 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc
frame=  900 fps=0.0 q=-0.0 Lsize=  455625kB time=00:00:30.03 
bitrate=124291.7kbits/s dup=180 drop=0 speed=47.9x
[Parsed_idet_0 @ 000002029e5aa500] Repeated Fields: Neither:   721 Top: 
    0 Bottom:     0
[Parsed_idet_0 @ 000002029e5aa500] Single frame detection: TFF:     0 
BFF:     0 Progressive:   715 Undetermined:     6
[Parsed_idet_0 @ 000002029e5aa500] Multi frame detection: TFF:     0 
BFF:     0 Progressive:   721 Undetermined:     0

====================== 14 minutes =======================
Input #0, mpeg, from 'G:\VIDEO_TS\VTS_02_2.VOB':
     Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, top 
first), 720x480 [SAR 32:27 DAR 16:9], Closed Captions, 29.97 fps, 29.97 
tbr, 90k tbn, 59.94 tbc
Output #0, rawvideo, to 'NUL':
     Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 720x480 
[SAR 32:27 DAR 16:9], q=2-31, 124291 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc
frame=  900 fps=0.0 q=-0.0 Lsize=  455625kB time=00:00:30.03 
bitrate=124291.7kbits/s dup=179 drop=0 speed=56.6x
[Parsed_idet_0 @ 000001f59fc6a500] Repeated Fields: Neither:   720 Top: 
    1 Bottom:     1
[Parsed_idet_0 @ 000001f59fc6a500] Single frame detection: TFF:     4 
BFF:     0 Progressive:   453 Undetermined:   265
[Parsed_idet_0 @ 000001f59fc6a500] Multi frame detection: TFF:   209 
BFF:     0 Progressive:   513 Undetermined:     0

====================== 18 minutes =======================
Input #0, mpeg, from 'G:\VIDEO_TS\VTS_02_2.VOB':
     Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, top 
first), 720x480 [SAR 32:27 DAR 16:9], Closed Captions, 29.97 fps, 29.97 
tbr, 90k tbn, 59.94 tbc
Output #0, rawvideo, to 'NUL':
     Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 720x480 
[SAR 32:27 DAR 16:9], q=2-31, 124291 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc
frame=  900 fps=0.0 q=-0.0 Lsize=  455625kB time=00:00:30.03 
bitrate=124291.7kbits/s dup=180 drop=0 speed=50.6x
[Parsed_idet_0 @ 000001b91fb9a500] Repeated Fields: Neither:   721 Top: 
    0 Bottom:     0
[Parsed_idet_0 @ 000001b91fb9a500] Single frame detection: TFF:     0 
BFF:     0 Progressive:   690 Undetermined:    31
[Parsed_idet_0 @ 000001b91fb9a500] Multi frame detection: TFF:     0 
BFF:     0 Progressive:   721 Undetermined:     0


More information about the ffmpeg-user mailing list