[FFmpeg-trac] #6418(undetermined:new): ffmpeg QSV doesnt work with live streams

FFmpeg trac at avcodec.org
Thu May 25 11:53:06 EEST 2017


#6418: ffmpeg QSV doesnt work with live streams
-------------------------------------+-------------------------------------
             Reporter:  rycius       |                    Owner:
                 Type:  defect       |                   Status:  new
             Priority:  normal       |                Component:
              Version:  git-master   |  undetermined
             Keywords:  qsv          |               Resolution:
             Blocking:               |               Blocked By:
Analyzed by developer:  0            |  Reproduced by developer:  0
-------------------------------------+-------------------------------------

Comment (by rycius):

 I think that a problem is that for QSV decoder first fed frame should be
 key Frame, -c:v copy option by default drops all non key frames.
 I made a test to confirm that by adding -copyinkf option on stream dump:
 {{{
 % ffmpeg -i udp://@239.0.1.1:1234 -map 0 -c copy -copyinkf -f mpegts
 test_stream.ts
 ffmpeg version 3.3.1 Copyright (c) 2000-2017 the FFmpeg developers
   built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609
   configuration: --enable-libmfx --enable-nonfree --enable-ffplay
   libavutil      55. 58.100 / 55. 58.100
   libavcodec     57. 89.100 / 57. 89.100
   libavformat    57. 71.100 / 57. 71.100
   libavdevice    57.  6.100 / 57.  6.100
   libavfilter     6. 82.100 /  6. 82.100
   libswscale      4.  6.100 /  4.  6.100
   libswresample   2.  7.100 /  2.  7.100
 [mpeg2video @ 0x30f4020] Invalid frame dimensions 0x0.
     Last message repeated 2 times
 Input #0, mpegts, from 'udp://@239.0.1.1:1234':
   Duration: N/A, start: 66943.062644, bitrate: 4218 kb/s
   Program 157
     Metadata:
       service_name    : Info tv
       service_provider: Noname
     Stream #0:0[0x623]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002),
 yuv420p(tv, top first), 720x576 [SAR 64:45 DAR 16:9], 4026 kb/s, 25 fps,
 25 tbr, 90k tbn, 50 tbc
     Stream #0:1[0x624]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz,
 stereo, s16p, 192 kb/s (clean effects)
 File 'test_stream.ts' already exists. Overwrite ? [y/N] y
 Output #0, mpegts, to 'test_stream.ts':
   Metadata:
     encoder         : Lavf57.71.100
     Stream #0:0: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002),
 yuv420p(tv, top first), 720x576 [SAR 64:45 DAR 16:9], q=2-31, 4026 kb/s,
 25 fps, 25 tbr, 90k tbn, 90k tbc
     Stream #0:1(lit): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz,
 stereo, s16p, 192 kb/s (clean effects)
 Stream mapping:
   Stream #0:0 -> #0:0 (copy)
   Stream #0:1 -> #0:1 (copy)
 Press [q] to stop, [?] for help
 frame=  369 fps= 53 q=-1.0 Lsize=    8225kB time=00:00:15.08
 bitrate=4465.6kbits/s speed=2.18x
 video:7257kB audio:346kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: 8.173873%
 }}}
 then tried to transcode it:
 {{{
 ffmpeg -hwaccel qsv -c:v mpeg2_qsv -i test_stream.ts -c:v h264_qsv -b:v 3M
 -maxrate 3M -look_ahead 0 -c:a copy -f mpegts udp://127.0.0.1:1234
 ffmpeg version 3.3.1 Copyright (c) 2000-2017 the FFmpeg developers
   built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609
   configuration: --enable-libmfx --enable-nonfree --enable-ffplay
   libavutil      55. 58.100 / 55. 58.100
   libavcodec     57. 89.100 / 57. 89.100
   libavformat    57. 71.100 / 57. 71.100
   libavdevice    57.  6.100 / 57.  6.100
   libavfilter     6. 82.100 /  6. 82.100
   libswscale      4.  6.100 /  4.  6.100
   libswresample   2.  7.100 /  2.  7.100
 [mpeg2video @ 0x269ae00] Invalid frame dimensions 0x0.
     Last message repeated 2 times
 Input #0, mpegts, from 'test_stream.ts':
   Duration: 00:00:15.17, start: 1.400000, bitrate: 4442 kb/s
   Program 1
     Metadata:
       service_name    : Service01
       service_provider: FFmpeg
     Stream #0:0[0x100]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002),
 yuv420p(tv, top first), 720x576 [SAR 64:45 DAR 16:9], 4026 kb/s, 25 fps,
 25 tbr, 90k tbn, 50 tbc
     Stream #0:1[0x101]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz,
 stereo, s16p, 192 kb/s (clean effects)
 Stream mapping:
   Stream #0:0 -> #0:0 (mpeg2video (mpeg2_qsv) -> h264 (h264_qsv))
   Stream #0:1 -> #0:1 (copy)
 Press [q] to stop, [?] for help
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 [mpeg2_qsv @ 0x269c840] Decoding pixel format '(null)' is not supported
 Error while decoding stream #0:0: Function not implemented
 Too many packets buffered for output stream 0:1.
 Conversion failed!
 }}}

--
Ticket URL: <https://trac.ffmpeg.org/ticket/6418#comment:1>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list