Message ID | 20200120094956.154224-1-jon.cook@cubicmotion.com |
---|---|
State | Withdrawn |
Headers | show |
Series | [FFmpeg-devel] libavcodec/qsvenc.c: Set height and width alignment when using mjpeg_qsv | expand |
Context | Check | Description |
---|---|---|
andriy/ffmpeg-patchwork | success | Make fate finished |
Jon Cook <jon.cook@cubicmotion.com> 于2020年1月20日周一 下午5:58写道: > > From: JonCookCubic <jon.cook@cubicmotion.com> > > Currently width_align and height_align are zero which cases "Error submitting the frame for encoding". This change sets the alignments. Could you help to provide detail steps (CLI and input video) to reproduce the issue? > > Signed-off-by: Jon Cook <jon.cook@cubicmotion.com> > --- > libavcodec/qsvenc.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c > index 9e416500e9..b18393532f 100644 > --- a/libavcodec/qsvenc.c > +++ b/libavcodec/qsvenc.c > @@ -470,6 +470,9 @@ static int init_video_param_jpeg(AVCodecContext *avctx, QSVEncContext *q) > q->param.mfx.Quality = av_clip(avctx->global_quality, 1, 100); > q->param.mfx.RestartInterval = 0; > > + q->width_align = 16; > + q->height_align = 16; > + IMHO If you set the aligned value, FrameInfo.Width/Height shoule be changed to be: q->param.mfx.FrameInfo.Width = FFALIGN(avctx->width, q->width_align); q->param.mfx.FrameInfo.Height = FFALIGN(avctx->height, q->height_align); > return 0; > } > > -- > 2.20.1.windows.1 > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
Hi Zhong, Thanks for your reply. > IMHO If you set the aligned value, FrameInfo.Width/Height shoule > be changed to be: > > q->param.mfx.FrameInfo.Width = FFALIGN(avctx->width, q->width_align); > q->param.mfx.FrameInfo.Height = FFALIGN(avctx->height, q->height_align); Makes sense. I'll update the patch. This is my first time making changes to the code so forgive any mistakes as I find my way around. > Could you help to provide detail steps (CLI and input video) to > reproduce the issue? The command line I'm using is below along with the output without the changes applied. Input video is not important, any video will do. There is a little bit more about the problem here http://ffmpeg.org/pipermail/ffmpeg-user/2019-November/046143.html Regards, Jon $ ./ffmpeg.exe -loglevel debug -y -i C:/Users/jcook/Desktop/sample.avi -c:v mjpeg_qsv output.mp4 ffmpeg version N-95883-ga2fbdc6898 Copyright (c) 2000-2019 the FFmpeg developers built with Microsoft (R) C/C++ Optimizing Compiler Version 19.16.27031.1 for x64 configuration: --toolchain=msvc --target-os=win64 --arch=x86_64 --prefix=/ffmpeg --enable-shared --disable-static --enable-yasm --enable-asm --enable-libmfx --enable-nonfree libavutil 56. 36.101 / 56. 36.101 libavcodec 58. 62.100 / 58. 62.100 libavformat 58. 35.100 / 58. 35.100 libavdevice 58. 9.101 / 58. 9.101 libavfilter 7. 67.100 / 7. 67.100 libswscale 5. 6.100 / 5. 6.100 libswresample 3. 6.100 / 3. 6.100 Splitting the commandline. Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'. Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'. Reading option '-i' ... matched as input url with argument 'C:/Users/jcook/Desktop/sample.avi'. Reading option '-c:v' ... matched as option 'c' (codec name) with argument ' mjpeg_qsv'. Reading option 'output.mp4' ... matched as output url. Finished splitting the commandline. Parsing a group of options: global . Applying option loglevel (set logging level) with argument debug. Applying option y (overwrite output files) with argument 1. Successfully parsed a group of options. Parsing a group of options: input url C:/Users/jcook/Desktop/sample.avi. Successfully parsed a group of options. Opening an input file: C:/Users/jcook/Desktop/sample.avi. [NULL @ 000001E0699F8540] Opening 'C:/Users/jcook/Desktop/sample.avi' for reading [file @ 000001E0699D8280] Setting default whitelist 'file,crypto' [avi @ 000001E0699F8540] Format avi probed with size=2048 and score=100 [avi @ 000001E0699D86C0] use odml:1 st:1 removing common factor 36 from timebase [avi @ 000001E0699F8540] Before avformat_find_stream_info() pos: 4108 bytes read:142280 seeks:5 nb_streams:2 [mpeg4 @ 000001E069A0AE00] Format yuv420p chosen by get_format(). [avi @ 000001E0699F8540] All info found [avi @ 000001E0699F8540] After avformat_find_stream_info() pos: 16409 bytes read:142280 seeks:5 frames:21 Input #0, avi, from 'C:/Users/jcook/Desktop/sample.avi': Metadata: encoder : MEncoder SVN-r33148-4.0.1 Duration: 00:00:05.56, start: 0.000000, bitrate: 540 kb/s Stream #0:0, 1, 1/25: Video: mpeg4 (Simple Profile), 1 reference frame (XVID / 0x44495658), yuv420p(left), 320x240 [SAR 1:1 DAR 4:3], 0/1, 425 kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc Stream #0:1, 20, 32/1225: Audio: mp3 (U[0][0][0] / 0x0055), 44100 Hz, stereo, fltp, 100 kb/s Successfully opened the file. Parsing a group of options: output url output.mp4. Applying option c:v (codec name) with argument mjpeg_qsv. Successfully parsed a group of options. Opening an output file: output.mp4. [file @ 000001E06B51B9C0] Setting default whitelist 'file,crypto' Successfully opened the file. detected 12 logical cores Stream mapping: Stream #0:0 -> #0:0 (mpeg4 (native) -> mjpeg (mjpeg_qsv)) Stream #0:1 -> #0:1 (mp3 (mp3float) -> aac (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) [graph_1_in_0_1 @ 000001E069A12A40] Setting 'time_base' to value '1/44100' [graph_1_in_0_1 @ 000001E069A12A40] Setting 'sample_rate' to value '44100' [graph_1_in_0_1 @ 000001E069A12A40] Setting 'sample_fmt' to value 'fltp' [graph_1_in_0_1 @ 000001E069A12A40] Setting 'channel_layout' to value '0x3' [graph_1_in_0_1 @ 000001E069A12A40] tb:1/44100 samplefmt:fltp samplerate:44100 chlayout:0x3 [format_out_0_1 @ 000001E069A2F800] Setting 'sample_fmts' to value 'fltp' [format_out_0_1 @ 000001E069A2F800] Setting 'sample_rates' to value '96000|88200|64000|48000|44100|32000|24000|22050|16000|12000|11025|8000|7350' [AVFilterGraph @ 000001E069AA7100] query_formats: 4 queried, 9 merged, 0 already done, 0 delayed 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 20 times [mpeg4 @ 000001E069A2EE00] Format yuv420p chosen by get_format(). 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 28 times [graph 0 input from stream 0:0 @ 000001E069A31640] Setting 'video_size' to value '320x240' [graph 0 input from stream 0:0 @ 000001E069A31640] Setting 'pix_fmt' to value '0' [graph 0 input from stream 0:0 @ 000001E069A31640] Setting 'time_base' to value '1/25' [graph 0 input from stream 0:0 @ 000001E069A31640] Setting 'pixel_aspect' to value '1/1' [graph 0 input from stream 0:0 @ 000001E069A31640] Setting 'sws_param' to value 'flags=2' [graph 0 input from stream 0:0 @ 000001E069A31640] Setting 'frame_rate' to value '25/1' [graph 0 input from stream 0:0 @ 000001E069A31640] w:320 h:240 pixfmt:yuv420p tb:1/25 fr:25/1 sar:1/1 sws_param:flags=2 [format @ 000001E06BBCED80] Setting 'pix_fmts' to value 'nv12|qsv' [auto_scaler_0 @ 000001E06BBCEE80] Setting 'flags' to value 'bicubic' [auto_scaler_0 @ 000001E06BBCEE80] w:iw h:ih flags:'bicubic' interl:0 [format @ 000001E06BBCED80] auto-inserting filter 'auto_scaler_0' between the filter 'Parsed_null_0' and the filter 'format' [AVFilterGraph @ 000001E069AA7F80] query_formats: 4 queried, 2 merged, 1 already done, 0 delayed [auto_scaler_0 @ 000001E06BBCEE80] w:320 h:240 fmt:yuv420p sar:1/1 -> w:320 h:240 fmt:nv12 sar:1/1 flags:0x4 [mjpeg_qsv @ 000001E069A01B80] Initialized an internal MFX session using hardware accelerated implementation Output #0, mp4, to 'output.mp4': Metadata: encoder : Lavf58.35.100 Stream #0:0, 0, 1/12800: Video: mjpeg (mjpeg_qsv), 1 reference frame (mp4v / 0x7634706D), nv12(left), 320x240 [SAR 1:1 DAR 4:3], 0/1, q=2-31, 200 kb/s, 25 fps, 12800 tbn, 25 tbc Metadata: encoder : Lavc58.62.100 mjpeg_qsv Stream #0:1, 0, 1/44100: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, delay 1024, 128 kb/s Metadata: encoder : Lavc58.62.100 aac Clipping frame in rate conversion by 0.000008 [mjpeg_qsv @ 000001E069A01B80] Error submitting the frame for encoding. Video encoding failed [AVIOContext @ 000001E06B51BA80] Statistics: 0 seeks, 1 writeouts [aac @ 000001E069A3A6C0] Qavg: 709.099 [aac @ 000001E069A3A6C0] 2 frames left in the queue on closing [AVIOContext @ 000001E0699D1440] Statistics: 175048 bytes read, 5 seeks Conversion failed!
Updated patch with FrameInfo.Width and Height set as per review comments Jon On Tue, 21 Jan 2020 at 11:47, Jon Cook <jon.cook@cubicmotion.com> wrote: > Hi Zhong, > > Thanks for your reply. > > > IMHO If you set the aligned value, FrameInfo.Width/Height shoule > > be changed to be: > > > > q->param.mfx.FrameInfo.Width = FFALIGN(avctx->width, q->width_align); > > q->param.mfx.FrameInfo.Height = FFALIGN(avctx->height, > q->height_align); > > Makes sense. I'll update the patch. This is my first time making changes > to the code so forgive any mistakes as I find my way around. > > > Could you help to provide detail steps (CLI and input video) to > > reproduce the issue? > > The command line I'm using is below along with the output without the > changes applied. Input video is not important, any video will do. There is > a little bit more about the problem here > http://ffmpeg.org/pipermail/ffmpeg-user/2019-November/046143.html > > Regards, > Jon > > $ ./ffmpeg.exe -loglevel debug -y -i C:/Users/jcook/Desktop/sample.avi > -c:v mjpeg_qsv output.mp4 > ffmpeg version N-95883-ga2fbdc6898 Copyright (c) 2000-2019 the FFmpeg > developers > built with Microsoft (R) C/C++ Optimizing Compiler Version 19.16.27031.1 > for x64 > configuration: --toolchain=msvc --target-os=win64 --arch=x86_64 > --prefix=/ffmpeg --enable-shared --disable-static --enable-yasm > --enable-asm --enable-libmfx --enable-nonfree > libavutil 56. 36.101 / 56. 36.101 > libavcodec 58. 62.100 / 58. 62.100 > libavformat 58. 35.100 / 58. 35.100 > libavdevice 58. 9.101 / 58. 9.101 > libavfilter 7. 67.100 / 7. 67.100 > libswscale 5. 6.100 / 5. 6.100 > libswresample 3. 6.100 / 3. 6.100 > Splitting the commandline. > Reading option '-loglevel' ... matched as option 'loglevel' (set logging > level) with argument 'debug'. > Reading option '-y' ... matched as option 'y' (overwrite output files) > with argument '1'. > Reading option '-i' ... matched as input url with argument > 'C:/Users/jcook/Desktop/sample.avi'. > Reading option '-c:v' ... matched as option 'c' (codec name) with argument > 'mjpeg_qsv'. > Reading option 'output.mp4' ... matched as output url. > Finished splitting the commandline. > Parsing a group of options: global . > Applying option loglevel (set logging level) with argument debug. > Applying option y (overwrite output files) with argument 1. > Successfully parsed a group of options. > Parsing a group of options: input url C:/Users/jcook/Desktop/sample.avi. > Successfully parsed a group of options. > Opening an input file: C:/Users/jcook/Desktop/sample.avi. > [NULL @ 000001E0699F8540] Opening 'C:/Users/jcook/Desktop/sample.avi' for > reading > [file @ 000001E0699D8280] Setting default whitelist 'file,crypto' > [avi @ 000001E0699F8540] Format avi probed with size=2048 and score=100 > [avi @ 000001E0699D86C0] use odml:1 > st:1 removing common factor 36 from timebase > [avi @ 000001E0699F8540] Before avformat_find_stream_info() pos: 4108 > bytes read:142280 seeks:5 nb_streams:2 > [mpeg4 @ 000001E069A0AE00] Format yuv420p chosen by get_format(). > [avi @ 000001E0699F8540] All info found > [avi @ 000001E0699F8540] After avformat_find_stream_info() pos: 16409 > bytes read:142280 seeks:5 frames:21 > Input #0, avi, from 'C:/Users/jcook/Desktop/sample.avi': > Metadata: > encoder : MEncoder SVN-r33148-4.0.1 > Duration: 00:00:05.56, start: 0.000000, bitrate: 540 kb/s > Stream #0:0, 1, 1/25: Video: mpeg4 (Simple Profile), 1 reference frame > (XVID / 0x44495658), yuv420p(left), 320x240 [SAR 1:1 DAR 4:3], 0/1, 425 > kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc > Stream #0:1, 20, 32/1225: Audio: mp3 (U[0][0][0] / 0x0055), 44100 Hz, > stereo, fltp, 100 kb/s > Successfully opened the file. > Parsing a group of options: output url output.mp4. > Applying option c:v (codec name) with argument mjpeg_qsv. > Successfully parsed a group of options. > Opening an output file: output.mp4. > [file @ 000001E06B51B9C0] Setting default whitelist 'file,crypto' > Successfully opened the file. > detected 12 logical cores > Stream mapping: > Stream #0:0 -> #0:0 (mpeg4 (native) -> mjpeg (mjpeg_qsv)) > Stream #0:1 -> #0:1 (mp3 (mp3float) -> aac (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) > [graph_1_in_0_1 @ 000001E069A12A40] Setting 'time_base' to value '1/44100' > [graph_1_in_0_1 @ 000001E069A12A40] Setting 'sample_rate' to value '44100' > [graph_1_in_0_1 @ 000001E069A12A40] Setting 'sample_fmt' to value 'fltp' > [graph_1_in_0_1 @ 000001E069A12A40] Setting 'channel_layout' to value '0x3' > [graph_1_in_0_1 @ 000001E069A12A40] tb:1/44100 samplefmt:fltp > samplerate:44100 chlayout:0x3 > [format_out_0_1 @ 000001E069A2F800] Setting 'sample_fmts' to value 'fltp' > [format_out_0_1 @ 000001E069A2F800] Setting 'sample_rates' to value > '96000|88200|64000|48000|44100|32000|24000|22050|16000|12000|11025|8000|7350' > [AVFilterGraph @ 000001E069AA7100] query_formats: 4 queried, 9 merged, 0 > already done, 0 delayed > 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 20 times > [mpeg4 @ 000001E069A2EE00] Format yuv420p chosen by get_format(). > 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 28 times > [graph 0 input from stream 0:0 @ 000001E069A31640] Setting 'video_size' to > value '320x240' > [graph 0 input from stream 0:0 @ 000001E069A31640] Setting 'pix_fmt' to > value '0' > [graph 0 input from stream 0:0 @ 000001E069A31640] Setting 'time_base' to > value '1/25' > [graph 0 input from stream 0:0 @ 000001E069A31640] Setting 'pixel_aspect' > to value '1/1' > [graph 0 input from stream 0:0 @ 000001E069A31640] Setting 'sws_param' to > value 'flags=2' > [graph 0 input from stream 0:0 @ 000001E069A31640] Setting 'frame_rate' to > value '25/1' > [graph 0 input from stream 0:0 @ 000001E069A31640] w:320 h:240 > pixfmt:yuv420p tb:1/25 fr:25/1 sar:1/1 sws_param:flags=2 > [format @ 000001E06BBCED80] Setting 'pix_fmts' to value 'nv12|qsv' > [auto_scaler_0 @ 000001E06BBCEE80] Setting 'flags' to value 'bicubic' > [auto_scaler_0 @ 000001E06BBCEE80] w:iw h:ih flags:'bicubic' interl:0 > [format @ 000001E06BBCED80] auto-inserting filter 'auto_scaler_0' between > the filter 'Parsed_null_0' and the filter 'format' > [AVFilterGraph @ 000001E069AA7F80] query_formats: 4 queried, 2 merged, 1 > already done, 0 delayed > [auto_scaler_0 @ 000001E06BBCEE80] w:320 h:240 fmt:yuv420p sar:1/1 -> > w:320 h:240 fmt:nv12 sar:1/1 flags:0x4 > [mjpeg_qsv @ 000001E069A01B80] Initialized an internal MFX session using > hardware accelerated implementation > Output #0, mp4, to 'output.mp4': > Metadata: > encoder : Lavf58.35.100 > Stream #0:0, 0, 1/12800: Video: mjpeg (mjpeg_qsv), 1 reference frame > (mp4v / 0x7634706D), nv12(left), 320x240 [SAR 1:1 DAR 4:3], 0/1, q=2-31, > 200 kb/s, 25 fps, 12800 tbn, 25 tbc > Metadata: > encoder : Lavc58.62.100 mjpeg_qsv > Stream #0:1, 0, 1/44100: Audio: aac (LC) (mp4a / 0x6134706D), 44100 > Hz, stereo, fltp, delay 1024, 128 kb/s > Metadata: > encoder : Lavc58.62.100 aac > Clipping frame in rate conversion by 0.000008 > [mjpeg_qsv @ 000001E069A01B80] Error submitting the frame for encoding. > Video encoding failed > [AVIOContext @ 000001E06B51BA80] Statistics: 0 seeks, 1 writeouts > [aac @ 000001E069A3A6C0] Qavg: 709.099 > [aac @ 000001E069A3A6C0] 2 frames left in the queue on closing > [AVIOContext @ 000001E0699D1440] Statistics: 175048 bytes read, 5 seeks > Conversion failed! >
Giving up on how to update the patch. Going to delete this ticket and create a new one! Jon On Tue, 21 Jan 2020 at 12:30, Jon Cook <jon.cook@cubicmotion.com> wrote: > Updated patch with FrameInfo.Width and Height set as per review comments > > Jon > > On Tue, 21 Jan 2020 at 11:47, Jon Cook <jon.cook@cubicmotion.com> wrote: > >> Hi Zhong, >> >> Thanks for your reply. >> >> > IMHO If you set the aligned value, FrameInfo.Width/Height shoule >> > be changed to be: >> > >> > q->param.mfx.FrameInfo.Width = FFALIGN(avctx->width, >> q->width_align); >> > q->param.mfx.FrameInfo.Height = FFALIGN(avctx->height, >> q->height_align); >> >> Makes sense. I'll update the patch. This is my first time making changes >> to the code so forgive any mistakes as I find my way around. >> >> > Could you help to provide detail steps (CLI and input video) to >> > reproduce the issue? >> >> The command line I'm using is below along with the output without the >> changes applied. Input video is not important, any video will do. There is >> a little bit more about the problem here >> http://ffmpeg.org/pipermail/ffmpeg-user/2019-November/046143.html >> >> Regards, >> Jon >> >> $ ./ffmpeg.exe -loglevel debug -y -i C:/Users/jcook/Desktop/sample.avi >> -c:v mjpeg_qsv output.mp4 >> ffmpeg version N-95883-ga2fbdc6898 Copyright (c) 2000-2019 the FFmpeg >> developers >> built with Microsoft (R) C/C++ Optimizing Compiler Version >> 19.16.27031.1 for x64 >> configuration: --toolchain=msvc --target-os=win64 --arch=x86_64 >> --prefix=/ffmpeg --enable-shared --disable-static --enable-yasm >> --enable-asm --enable-libmfx --enable-nonfree >> libavutil 56. 36.101 / 56. 36.101 >> libavcodec 58. 62.100 / 58. 62.100 >> libavformat 58. 35.100 / 58. 35.100 >> libavdevice 58. 9.101 / 58. 9.101 >> libavfilter 7. 67.100 / 7. 67.100 >> libswscale 5. 6.100 / 5. 6.100 >> libswresample 3. 6.100 / 3. 6.100 >> Splitting the commandline. >> Reading option '-loglevel' ... matched as option 'loglevel' (set logging >> level) with argument 'debug'. >> Reading option '-y' ... matched as option 'y' (overwrite output files) >> with argument '1'. >> Reading option '-i' ... matched as input url with argument >> 'C:/Users/jcook/Desktop/sample.avi'. >> Reading option '-c:v' ... matched as option 'c' (codec name) with >> argument 'mjpeg_qsv'. >> Reading option 'output.mp4' ... matched as output url. >> Finished splitting the commandline. >> Parsing a group of options: global . >> Applying option loglevel (set logging level) with argument debug. >> Applying option y (overwrite output files) with argument 1. >> Successfully parsed a group of options. >> Parsing a group of options: input url C:/Users/jcook/Desktop/sample.avi. >> Successfully parsed a group of options. >> Opening an input file: C:/Users/jcook/Desktop/sample.avi. >> [NULL @ 000001E0699F8540] Opening 'C:/Users/jcook/Desktop/sample.avi' for >> reading >> [file @ 000001E0699D8280] Setting default whitelist 'file,crypto' >> [avi @ 000001E0699F8540] Format avi probed with size=2048 and score=100 >> [avi @ 000001E0699D86C0] use odml:1 >> st:1 removing common factor 36 from timebase >> [avi @ 000001E0699F8540] Before avformat_find_stream_info() pos: 4108 >> bytes read:142280 seeks:5 nb_streams:2 >> [mpeg4 @ 000001E069A0AE00] Format yuv420p chosen by get_format(). >> [avi @ 000001E0699F8540] All info found >> [avi @ 000001E0699F8540] After avformat_find_stream_info() pos: 16409 >> bytes read:142280 seeks:5 frames:21 >> Input #0, avi, from 'C:/Users/jcook/Desktop/sample.avi': >> Metadata: >> encoder : MEncoder SVN-r33148-4.0.1 >> Duration: 00:00:05.56, start: 0.000000, bitrate: 540 kb/s >> Stream #0:0, 1, 1/25: Video: mpeg4 (Simple Profile), 1 reference >> frame (XVID / 0x44495658), yuv420p(left), 320x240 [SAR 1:1 DAR 4:3], 0/1, >> 425 kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc >> Stream #0:1, 20, 32/1225: Audio: mp3 (U[0][0][0] / 0x0055), 44100 Hz, >> stereo, fltp, 100 kb/s >> Successfully opened the file. >> Parsing a group of options: output url output.mp4. >> Applying option c:v (codec name) with argument mjpeg_qsv. >> Successfully parsed a group of options. >> Opening an output file: output.mp4. >> [file @ 000001E06B51B9C0] Setting default whitelist 'file,crypto' >> Successfully opened the file. >> detected 12 logical cores >> Stream mapping: >> Stream #0:0 -> #0:0 (mpeg4 (native) -> mjpeg (mjpeg_qsv)) >> Stream #0:1 -> #0:1 (mp3 (mp3float) -> aac (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) >> [graph_1_in_0_1 @ 000001E069A12A40] Setting 'time_base' to value '1/44100' >> [graph_1_in_0_1 @ 000001E069A12A40] Setting 'sample_rate' to value '44100' >> [graph_1_in_0_1 @ 000001E069A12A40] Setting 'sample_fmt' to value 'fltp' >> [graph_1_in_0_1 @ 000001E069A12A40] Setting 'channel_layout' to value >> '0x3' >> [graph_1_in_0_1 @ 000001E069A12A40] tb:1/44100 samplefmt:fltp >> samplerate:44100 chlayout:0x3 >> [format_out_0_1 @ 000001E069A2F800] Setting 'sample_fmts' to value 'fltp' >> [format_out_0_1 @ 000001E069A2F800] Setting 'sample_rates' to value >> '96000|88200|64000|48000|44100|32000|24000|22050|16000|12000|11025|8000|7350' >> [AVFilterGraph @ 000001E069AA7100] query_formats: 4 queried, 9 merged, 0 >> already done, 0 delayed >> 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 20 times >> [mpeg4 @ 000001E069A2EE00] Format yuv420p chosen by get_format(). >> 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 28 times >> [graph 0 input from stream 0:0 @ 000001E069A31640] Setting 'video_size' >> to value '320x240' >> [graph 0 input from stream 0:0 @ 000001E069A31640] Setting 'pix_fmt' to >> value '0' >> [graph 0 input from stream 0:0 @ 000001E069A31640] Setting 'time_base' to >> value '1/25' >> [graph 0 input from stream 0:0 @ 000001E069A31640] Setting 'pixel_aspect' >> to value '1/1' >> [graph 0 input from stream 0:0 @ 000001E069A31640] Setting 'sws_param' to >> value 'flags=2' >> [graph 0 input from stream 0:0 @ 000001E069A31640] Setting 'frame_rate' >> to value '25/1' >> [graph 0 input from stream 0:0 @ 000001E069A31640] w:320 h:240 >> pixfmt:yuv420p tb:1/25 fr:25/1 sar:1/1 sws_param:flags=2 >> [format @ 000001E06BBCED80] Setting 'pix_fmts' to value 'nv12|qsv' >> [auto_scaler_0 @ 000001E06BBCEE80] Setting 'flags' to value 'bicubic' >> [auto_scaler_0 @ 000001E06BBCEE80] w:iw h:ih flags:'bicubic' interl:0 >> [format @ 000001E06BBCED80] auto-inserting filter 'auto_scaler_0' between >> the filter 'Parsed_null_0' and the filter 'format' >> [AVFilterGraph @ 000001E069AA7F80] query_formats: 4 queried, 2 merged, 1 >> already done, 0 delayed >> [auto_scaler_0 @ 000001E06BBCEE80] w:320 h:240 fmt:yuv420p sar:1/1 -> >> w:320 h:240 fmt:nv12 sar:1/1 flags:0x4 >> [mjpeg_qsv @ 000001E069A01B80] Initialized an internal MFX session using >> hardware accelerated implementation >> Output #0, mp4, to 'output.mp4': >> Metadata: >> encoder : Lavf58.35.100 >> Stream #0:0, 0, 1/12800: Video: mjpeg (mjpeg_qsv), 1 reference frame >> (mp4v / 0x7634706D), nv12(left), 320x240 [SAR 1:1 DAR 4:3], 0/1, q=2-31, >> 200 kb/s, 25 fps, 12800 tbn, 25 tbc >> Metadata: >> encoder : Lavc58.62.100 mjpeg_qsv >> Stream #0:1, 0, 1/44100: Audio: aac (LC) (mp4a / 0x6134706D), 44100 >> Hz, stereo, fltp, delay 1024, 128 kb/s >> Metadata: >> encoder : Lavc58.62.100 aac >> Clipping frame in rate conversion by 0.000008 >> [mjpeg_qsv @ 000001E069A01B80] Error submitting the frame for encoding. >> Video encoding failed >> [AVIOContext @ 000001E06B51BA80] Statistics: 0 seeks, 1 writeouts >> [aac @ 000001E069A3A6C0] Qavg: 709.099 >> [aac @ 000001E069A3A6C0] 2 frames left in the queue on closing >> [AVIOContext @ 000001E0699D1440] Statistics: 175048 bytes read, 5 seeks >> Conversion failed! >> >
diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c index 9e416500e9..b18393532f 100644 --- a/libavcodec/qsvenc.c +++ b/libavcodec/qsvenc.c @@ -470,6 +470,9 @@ static int init_video_param_jpeg(AVCodecContext *avctx, QSVEncContext *q) q->param.mfx.Quality = av_clip(avctx->global_quality, 1, 100); q->param.mfx.RestartInterval = 0; + q->width_align = 16; + q->height_align = 16; + return 0; }