> -----Original Message----- > From: ffmpeg-user <ffmpeg-user-boun...@ffmpeg.org> On Behalf Of Shane > Warren > Sent: Friday, August 30, 2024 10:23 PM > To: ffmpeg-user@ffmpeg.org > Subject: [FFmpeg-user] Intel QSV Transcoding Stops on Resolution > Change > > I am transcoding live video using intel flex 140 cards, and the video > mostly stays > one resolution/framerate but sometimes ads come in that are in > different > resolutions, and that either crashes ffmpeg (in libmfx) or stops > ffmpeg. > > For example, an input stream starts out at 1280x720p@60 then > eventually > changes 1920x1080i@30 and then back to 1280x720p@60. > > I've tried using many ways to make FFmpeg survive the resolution > change: > - software decoding, then vpp_qsv (for deinterlacing and scaling), > then > h264_qsv... this crashes inside libmfx if a resolution change happens > - hardware decoding using vaapi, then hwmap=derive_device=qsv, then > vpp_qsv > (for deinterlacing and scaling), then h264_qsv this just stops with > this message: > > [graph 0 input from stream 0:0 @ 0x561180fc1ac0] w:1920 h:1080 > pixfmt:vaapi > tb:1/90000 fr:60000/1001 sar:1/1 > [scaler_out_0_0 @ 0x561181e57ac0] w:1280 h:720 flags:'' interl:0 > [auto_scale_0 @ 0x561181430e80] w:iw h:ih flags:'' interl:0 [format @ > 0x561181e6dd80] auto-inserting filter 'auto_scale_0' between the > filter > 'scaler_out_0_0' and the filter 'format' > Impossible to convert between the formats supported by the filter > 'scaler_out_0_0' and the filter 'auto_scale_0' > > - I also tried software decoding, then using vaapi deinterlacing, and > vaapi scaling, > this exits with the same error as above. > > - I should note that I can't use qsv decoding because I noticed qsv > decoding strips > off a53 captions, which I need. > > Any ideas on what combination of decoding, deinterlacing/scaling, and > encoding I > can use with these flex 140 cards that can handle a resolution change > on the > input. > > Here is my ffmpeg command line when I'm using vaapi to decode and qsv > to > encode:
You may need to add "-noautoscale" option in your cmdline. While current ffmpeg-qsv have a surface alignment issue when derive from vaapi surface in some particular resolution. If your cmd still fail, you can try this patch: https://github.com/intel-media-ci/ffmpeg/pull/765 Thanks Fei > > ffmpeg -y -threads 2 -nostats -nostdin -loglevel verbose -progress > pipe:1 - > probesize 5M -filter_threads 4 -threads 2 -fflags +genpts -fflags > discardcorrupt - > hwaccel_output_format vaapi \ -qsv_device /dev/dri/card1 - > init_hw_device > qsv=hw -filter_hw_device hw -hwaccel vaapi \ -i > "udp://@225.105.0.28:10102??fifo_size=2146880&buffer_size=65535&timeo > ut= > 800000" \ -threads 2 -c:a:0 ac3 -dialnorm -28 -threads 2 -ac:a:0 6 - > ar:a:0 48000 - > b:a:0 384k -flush_packets 0 \ -filter_complex > "[0:v:0]fps=60000/1001,hwmap=derive_device=qsv,vpp_qsv=deinterlace=2: > w=1 > 280:h=720[vout]" \ -map "[vout]" -map "0:a:0" \ -c:v h264_qsv -b:v > 3000k - > minrate:v 3000k -maxrate:v 3000k -bufsize:v 6000k -preset veryfast - > scenario > livestreaming -strict_gop 1 -forced_idr 1 -profile:v high -level:v > 4.2 -bf:v 0 -g:v 30 > \ -f mpegts -muxrate 3863560 -pes_payload_size 1528 > "udp://@225.105.0.35:10102?pkt_size=1316&fifo_size=90000&bitrate=3863 > 560 > &burst_bits=10528&ttl=64" > _______________________________________________ > ffmpeg-user mailing list > ffmpeg-user@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-user > > To unsubscribe, visit link above, or email > ffmpeg-user-requ...@ffmpeg.org with > subject "unsubscribe". _______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".