[FFmpeg-trac] #8958(undetermined:new): ffmpeg git: yuv4mpeg pipe seems to be broken

FFmpeg trac at avcodec.org
Sun Nov 1 21:45:59 EET 2020


#8958: ffmpeg git: yuv4mpeg pipe seems to be broken
-------------------------------------+-------------------------------------
             Reporter:  BlueSwordM   |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:  git-
  undetermined                       |  master
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 '''Summary of the bug:'''

 Piping from yuv4mpegpipe to another external encoder seems to be broken,
 at least on Ubuntu and Arch. Static and shared builds seem to encounter
 the same issue. The problem started rising with builds from October 29th
 to October 30th. Problem is still present using the git-master.

 My snapshot from October 20th works fine.

 The issue arises no matter the container(Matroska or MP4), the source
 codec(AVC/HEVC/VP9/MPEG2), and the encoder(rav1e/x264/aomenc/libvpx, all
 from their git-masters).

 '''How to reproduce:'''
 1. Compile ffmpeg normally on Ubuntu 20.04/20.10.
 (./configure --enable-gpl --enable-version3 --enable-nonfree)
 2. Run the command below
 {{{
 % ffmpeg -v 9 -loglevel 99 -i input.mkv -r 30 -s 1920x1080 -f yuv4mpegpipe
 -pix_fmt yuv420p - | aomenc --cpu-used=6 -o output.ivf -
 }}}
 3. I get this error, and the piping stops.
 {{{
 % av_interleaved_write_frame(): Broken pipe
 Error writing trailer of pipe:: Broken pipe
 }}}

 Full log here:

 {{{
 % Splitting the commandline.
 Reading option '-v' ... matched as option 'v' (set logging level) with
 argument '9'.
 Reading option '-loglevel' ... matched as option 'loglevel' (set logging
 level) with argument '99'.
 Reading option '-i' ... matched as input url with argument
 '/home/bluezakm/Downloads/1080p_30s.mkv'.
 Reading option '-f' ... matched as option 'f' (force format) with argument
 'yuv4mpegpipe'.
 Reading option '-' ... matched as output url.
 Finished splitting the commandline.
 Parsing a group of options: global .
 Applying option v (set logging level) with argument 9.
 Successfully parsed a group of options.
 Parsing a group of options: input url
 /home/bluezakm/Downloads/1080p_30s.mkv.
 Successfully parsed a group of options.
 Opening an input file: /home/bluezakm/Downloads/1080p_30s.mkv.
 [NULL @ 0x56220b1ff800] Opening '/home/bluezakm/Downloads/1080p_30s.mkv'
 for reading
 [file @ 0x56220b200340] Setting default whitelist 'file,crypto,data'
 Probing matroska,webm score:100 size:2048
 [matroska,webm @ 0x56220b1ff800] Format matroska,webm probed with
 size=2048 and score=100
 [matroska,webm @ 0x56220b1ff800] Unknown entry 0x22B59D at pos. 4375
 [matroska,webm @ 0x56220b1ff800] Unknown entry 0x447B at pos. 225410794
 [matroska,webm @ 0x56220b1ff800] Unknown entry 0x447B at pos. 225410840
 [matroska,webm @ 0x56220b1ff800] Unknown entry 0x447B at pos. 225410879
 [matroska,webm @ 0x56220b1ff800] Unknown entry 0x447B at pos. 225410923
 [matroska,webm @ 0x56220b1ff800] Unknown entry 0x447B at pos. 225411000
 [matroska,webm @ 0x56220b1ff800] Unknown entry 0x447B at pos. 225411067
 [matroska,webm @ 0x56220b1ff800] Unknown entry 0x447B at pos. 225411148
 st:0 removing common factor 1000000 from timebase
 [matroska,webm @ 0x56220b1ff800] Before avformat_find_stream_info() pos:
 5484 bytes read:33189 seeks:2 nb_streams:1
 [h264 @ 0x56220b203840] nal_unit_type: 7(SPS), nal_ref_idc: 3
 [h264 @ 0x56220b203840] nal_unit_type: 8(PPS), nal_ref_idc: 3
 [h264 @ 0x56220b203840] nal_unit_type: 7(SPS), nal_ref_idc: 3
 [h264 @ 0x56220b203840] nal_unit_type: 8(PPS), nal_ref_idc: 3
 [h264 @ 0x56220b203840] nal_unit_type: 5(IDR), nal_ref_idc: 3
 [h264 @ 0x56220b203840] Format yuv420p chosen by get_format().
 [h264 @ 0x56220b203840] Reinit context to 1920x1088, pix_fmt: yuv420p
 [h264 @ 0x56220b203840] nal_unit_type: 1(Coded slice of a non-IDR
 picture), nal_ref_idc: 2
 [h264 @ 0x56220b203840] Increasing reorder buffer to 1
 [h264 @ 0x56220b203840] no picture
 [h264 @ 0x56220b203840] nal_unit_type: 1(Coded slice of a non-IDR
 picture), nal_ref_idc: 0
     Last message repeated 1 times
 [h264 @ 0x56220b203840] nal_unit_type: 1(Coded slice of a non-IDR
 picture), nal_ref_idc: 2
 [h264 @ 0x56220b203840] nal_unit_type: 1(Coded slice of a non-IDR
 picture), nal_ref_idc: 0
     Last message repeated 1 times
 [h264 @ 0x56220b203840] nal_unit_type: 1(Coded slice of a non-IDR
 picture), nal_ref_idc: 2
 [matroska,webm @ 0x56220b1ff800] All info found
 [matroska,webm @ 0x56220b1ff800] stream 0: start_time: 0 duration: NOPTS
 [matroska,webm @ 0x56220b1ff800] format: start_time: 0 duration: 30.03
 (estimate from stream) bitrate=60049 kb/s
 [matroska,webm @ 0x56220b1ff800] After avformat_find_stream_info() pos:
 2026108 bytes read:2053813 seeks:2 frames:9
 Input #0, matroska,webm, from '/home/bluezakm/Downloads/1080p_30s.mkv':
   Metadata:
     encoder         : libebml v1.4.0 + libmatroska v1.6.2
     creation_time   : 2020-10-31T02:09:11.000000Z
   Duration: 00:00:30.03, start: 0.000000, bitrate: 60049 kb/s
     Stream #0:0(eng), 9, 1/1000: Video: h264 (High), 1 reference frame,
 yuv420p(tv, bt709, progressive, left), 1920x1080 (1920x1088), 0/1, SAR 1:1
 DAR 16:9, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
     Metadata:
       BPS-eng         : 60045841
       DURATION-eng    : 00:00:30.030000000
       NUMBER_OF_FRAMES-eng: 720
       NUMBER_OF_BYTES-eng: 225397078
       _STATISTICS_WRITING_APP-eng: mkvmerge v51.0.0 ('I Wish') 64-bit
       _STATISTICS_WRITING_DATE_UTC-eng: 2020-10-31 02:09:11
       _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
 Successfully opened the file.
 Parsing a group of options: output url -.
 Applying option f (force format) with argument yuv4mpegpipe.
 Successfully parsed a group of options.
 Opening an output file: -.
 [pipe @ 0x56220b204840] Setting default whitelist 'crypto,data'
 Successfully opened the file.
 detected 16 logical cores
 [h264 @ 0x56220b7510c0] nal_unit_type: 7(SPS), nal_ref_idc: 3
 [h264 @ 0x56220b7510c0] nal_unit_type: 8(PPS), nal_ref_idc: 3
 Stream mapping:
   Stream #0:0 -> #0:0 (h264 (native) -> wrapped_avframe (native))
 Press [q] to stop, [?] for help
 cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless
 if it occurs once at the start per stream)
     Last message repeated 1 times
 [h264 @ 0x56220b7510c0] nal_unit_type: 5(IDR), nal_ref_idc: 3
 [h264 @ 0x56220b7510c0] Format yuv420p chosen by get_format().
 [h264 @ 0x56220b7510c0] Reinit context to 1920x1088, pix_fmt: yuv420p
 [h264 @ 0x56220b7510c0] no picture
 cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless
 if it occurs once at the start per stream)
 [h264 @ 0x56220b2b3200] nal_unit_type: 1(Coded slice of a non-IDR
 picture), nal_ref_idc: 2
 cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless
 if it occurs once at the start per stream)
 [h264 @ 0x56220b2fc200] nal_unit_type: 1(Coded slice of a non-IDR
 picture), nal_ref_idc: 0
 cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless
 if it occurs once at the start per stream)
 [h264 @ 0x56220b302d40] nal_unit_type: 1(Coded slice of a non-IDR
 picture), nal_ref_idc: 0
 cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless
 if it occurs once at the start per stream)
 [h264 @ 0x56220b262c00] nal_unit_type: 1(Coded slice of a non-IDR
 picture), nal_ref_idc: 2
 cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless
 if it occurs once at the start per stream)
 [h264 @ 0x56220b27f800] nal_unit_type: 1(Coded slice of a non-IDR
 picture), nal_ref_idc: 0
 cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless
 if it occurs once at the start per stream)
 [h264 @ 0x56220ba29600] nal_unit_type: 1(Coded slice of a non-IDR
 picture), nal_ref_idc: 0
 cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless
 if it occurs once at the start per stream)
 [h264 @ 0x56220ba46340] nal_unit_type: 1(Coded slice of a non-IDR
 picture), nal_ref_idc: 2
 cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless
 if it occurs once at the start per stream)
 [h264 @ 0x56220ba630c0] nal_unit_type: 1(Coded slice of a non-IDR
 picture), nal_ref_idc: 0
 cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless
 if it occurs once at the start per stream)
 [h264 @ 0x56220ba7fe40] nal_unit_type: 1(Coded slice of a non-IDR
 picture), nal_ref_idc: 0
 cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless
 if it occurs once at the start per stream)
 [h264 @ 0x56220ba9cbc0] nal_unit_type: 1(Coded slice of a non-IDR
 picture), nal_ref_idc: 2
 cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless
 if it occurs once at the start per stream)
 [h264 @ 0x56220bab9940] nal_unit_type: 1(Coded slice of a non-IDR
 picture), nal_ref_idc: 0
 cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless
 if it occurs once at the start per stream)
 [h264 @ 0x56220bad66c0] nal_unit_type: 1(Coded slice of a non-IDR
 picture), nal_ref_idc: 0
 cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless
 if it occurs once at the start per stream)
 [h264 @ 0x56220baf3440] nal_unit_type: 1(Coded slice of a non-IDR
 picture), nal_ref_idc: 2
 cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless
 if it occurs once at the start per stream)
 [h264 @ 0x56220bb101c0] nal_unit_type: 1(Coded slice of a non-IDR
 picture), nal_ref_idc: 0
 [h264 @ 0x56220bb2cf40] nal_unit_type: 1(Coded slice of a non-IDR
 picture), nal_ref_idc: 0
 cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless
 if it occurs once at the start per stream)
 [h264 @ 0x56220b7510c0] nal_unit_type: 1(Coded slice of a non-IDR
 picture), nal_ref_idc: 2
 [graph 0 input from stream 0:0 @ 0x56220c27c840] Setting 'video_size' to
 value '1920x1080'
 [graph 0 input from stream 0:0 @ 0x56220c27c840] Setting 'pix_fmt' to
 value '0'
 [graph 0 input from stream 0:0 @ 0x56220c27c840] Setting 'time_base' to
 value '1/1000'
 [graph 0 input from stream 0:0 @ 0x56220c27c840] Setting 'pixel_aspect' to
 value '1/1'
 [graph 0 input from stream 0:0 @ 0x56220c27c840] Setting 'frame_rate' to
 value '24000/1001'
 [graph 0 input from stream 0:0 @ 0x56220c27c840] w:1920 h:1080
 pixfmt:yuv420p tb:1/1000 fr:24000/1001 sar:1/1
 [AVFilterGraph @ 0x56220c27ac40] query_formats: 3 queried, 2 merged, 0
 already done, 0 delayed
 Output #0, yuv4mpegpipe, to 'pipe:':
   Metadata:
     encoder         : Lavf58.64.100
     Stream #0:0(eng), 0, 1001/24000: Video: wrapped_avframe, 1 reference
 frame, yuv420p(tv, bt709, progressive, left), 1920x1080 [SAR 1:1 DAR
 16:9], 0/1, q=2-31, 200 kb/s, 23.98 fps, 23.98 tbn, 23.98 tbc (default)
     Metadata:
       BPS-eng         : 60045841
       DURATION-eng    : 00:00:30.030000000
       NUMBER_OF_FRAMES-eng: 720
       NUMBER_OF_BYTES-eng: 225397078
       _STATISTICS_WRITING_APP-eng: mkvmerge v51.0.0 ('I Wish') 64-bit
       _STATISTICS_WRITING_DATE_UTC-eng: 2020-10-31 02:09:11
       _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
       encoder         : Lavc58.112.100 wrapped_avframe
 Clipping frame in rate conversion by 0.000008
 Error parsing header; not a YUV2MPEG2 file?
 Fatal: Unsupported Y4M stream.
 av_interleaved_write_frame(): Broken pipe
 No more output streams to write to, finishing.
 Error writing trailer of pipe:: Broken pipe
 frame=    1 fps=0.0 q=-0.0 Lsize=      32kB time=00:00:00.04
 bitrate=6302.1kbits/s speed=0.853x
 video:1kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: 6029.850586%
 Input file #0 (/home/bluezakm/Downloads/1080p_30s.mkv):
   Input stream #0:0 (video): 17 packets read (3133913 bytes); 2 frames
 decoded;
   Total: 17 packets (3133913 bytes) demuxed
 Output file #0 (pipe:):
   Output stream #0:0 (video): 1 frames encoded; 1 packets muxed (536
 bytes);
   Total: 1 packets (536 bytes) muxed
 2 frames successfully decoded, 0 decoding errors
 [AVIOContext @ 0x56220b207a40] Statistics: 0 seeks, 96 writeouts
 [AVIOContext @ 0x56220b208740] Statistics: 3167254 bytes read, 2 seeks
 Conversion failed!
 }}}

--
Ticket URL: <https://trac.ffmpeg.org/ticket/8958>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list