Portál AbcLinuxu, 13. května 2025 00:40
Zdravim Je tu nejaky odbornik na ffmpeg? Nedari sa mi nejak zlozit parametre na prekodovanie videa z h265 na h264, ma viac streamov: 1 video h265, par zvukovych, par titulkovych. Chcel by som to kodovat cez vaapi, pripadne aj dekodovat. Video stream potrebujem dat na h264, audio+titulky sa mozu skopirovat. Bez vaapi mi to ide, ale je to pomale. S nim mi to nejde, stale nejake chyby (par prikladov co som skusal):
ffmpeg -hwaccel vaapi -vaapi_device /dev/dri/renderD128 -i video.mkv -c:v h264_vaapi -c:a copy -map 0 -map -0:s /tmp/d.mkv
[mjpeg @ 0x555d3171b600] Failed setup for format vaapi: hwaccel initialisation returned error. Impossible to convert between the formats supported by the filter 'Parsed_null_0' and the filter 'auto_scale_0' Error reinitializing filters! Failed to inject frame into filter network: Function not implemented Error while processing the decoded data for stream #0:12 Conversion failed!
ffmpeg -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi -i video.mkv -map 0 -c:a copy -c:v:1 copy -c:s copy -map 0:v:0 -vf 'format=nv12,hwupload' -c:v h264_vaapi -crf 18 "/tmp/d.mkv"
[hwupload @ 0x557ebd349900] A hardware device reference is required to upload frames to. [Parsed_hwupload_1 @ 0x557ebd3497c0] Query format failed for 'Parsed_hwupload_1': Invalid argument Error reinitializing filters! Failed to inject frame into filter network: Invalid argument Error while processing the decoded data for stream #0:12 Conversion failed!
ffmpeg -init_hw_device qsv=hw -filter_hw_device hw -i video.mkv -vf hwupload=extra_hw_frames=64,format=qsv -c:v h264_qsv -b:v 5M -maxrate 5M /tmp/output.mkv
[h264_qsv @ 0x55f91b193940] Current pixel format is unsupported [h264_qsv @ 0x55f91b193940] some encoding parameters are not supported by the QSV runtime. Please double check the input parameters. Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height [libvorbis @ 0x55f91b13bc40] 47 frames left in the queue on closing
Incompatible pixel format 'yuv420p' for codec 'h264_qsv', auto-selecting format 'nv12' Impossible to convert between the formats supported by the filter 'Parsed_format_1' and the filter 'auto_scale_1' Error reinitializing filters! Failed to inject frame into filter network: Function not implemented Error while processing the decoded data for stream #0:0 [libvorbis @ 0x55cb58f3a100] 47 frames left in the queue on closing
V..... h264_qsv H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (Intel Quick Sync Video acceleration) (codec h264) V..... hevc_qsv HEVC (Intel Quick Sync Video acceleration) (codec hevc) V..... mjpeg_qsv MJPEG (Intel Quick Sync Video acceleration) (codec mjpeg) V..... mpeg2_qsv MPEG-2 video (Intel Quick Sync Video acceleration) (codec mpeg2video) V..... vp9_qsv VP9 video (Intel Quick Sync Video acceleration) (codec vp9)ffmpeg -encoders |grep vaapi:
V....D h264_vaapi H.264/AVC (VAAPI) (codec h264) V....D hevc_vaapi H.265/HEVC (VAAPI) (codec hevc) V....D mjpeg_vaapi MJPEG (VAAPI) (codec mjpeg) V....D mpeg2_vaapi MPEG-2 (VAAPI) (codec mpeg2video) V....D vp8_vaapi VP8 (VAAPI) (codec vp8) V....D vp9_vaapi VP9 (VAAPI) (codec vp9)ffmpeg -decoders |grep qsv:
V....D av1_qsv AV1 video (Intel Quick Sync Video acceleration) (codec av1) V....D h264_qsv H264 video (Intel Quick Sync Video acceleration) (codec h264) V....D hevc_qsv HEVC video (Intel Quick Sync Video acceleration) (codec hevc) V....D mjpeg_qsv MJPEG video (Intel Quick Sync Video acceleration) (codec mjpeg) V....D mpeg2_qsv MPEG2VIDEO video (Intel Quick Sync Video acceleration) (codec mpeg2video) V....D vc1_qsv VC1 video (Intel Quick Sync Video acceleration) (codec vc1) V....D vp8_qsv VP8 video (Intel Quick Sync Video acceleration) (codec vp8) V....D vp9_qsv VP9 video (Intel Quick Sync Video acceleration) (codec vp9)
-c:s copyS tímto by měl ffmpeg titulky jenom zkopírovat. Nebo jestli ve výstupním videu nechceš titulky vůbec, tak nějak takto
ffmpeg -i input.mkv -map 0:v:0 -map 0:a:0načte se jenom první video stopa a první audio stopa. nápověda Kolik jakých stop ve videu je, ti řekne ffprobe. Třeba takový cover obrázek se taky počítá jako samostatná stopa.
Stream #0:0: Video: hevc (Main 10), yuv420p10le(tv), 1920x1012 [SAR 1:1 DAR 480:253], 23.98 fps, 23.98 tbr, 1k tbn (default) Stream #0:1(slo): Audio: eac3, 48000 Hz, 5.1(side), fltp, 256 kb/s (default) Stream #0:2(cze): Audio: eac3, 48000 Hz, 5.1(side), fltp, 256 kb/s Stream #0:3(eng): Audio: aac (LC), 48000 Hz, 5.1, fltp (original) Stream #0:4(slo): Subtitle: subrip (default) (forced) Stream #0:5(slo): Subtitle: ass (forced) Stream #0:6(slo): Subtitle: subrip Stream #0:7(slo): Subtitle: ass Stream #0:8(cze): Subtitle: subrip (forced) Stream #0:9(cze): Subtitle: ass (forced) Stream #0:10(cze): Subtitle: subrip Stream #0:11(cze): Subtitle: ass Stream #0:12: Video: mjpeg (Progressive), yuvj420p(pc, bt470bg/unknown/unknown), 743x1100 [SAR 1:1 DAR 743:1100], 90k tbr, 90k tbn (attached pic) Stream #0:13: Video: mjpeg (Progressive), yuvj420p(pc, bt470bg/unknown/unknown), 2000x3000 [SAR 1:1 DAR 2:3], 90k tbr, 90k tbn (attached pic) Stream #0:14: Video: mjpeg (Progressive), yuvj420p(pc, bt470bg/unknown/unknown), 1600x2400 [SAR 1:1 DAR 2:3], 90k tbr, 90k tbn (attached pic) Stream #0:15: Video: mjpeg (Progressive), yuvj420p(pc, bt470bg/unknown/unknown), 1500x2252 [SAR 1:1 DAR 375:563], 90k tbr, 90k tbn (attached pic) Stream #0:16: Video: mjpeg (Progressive), yuvj420p(pc, bt470bg/unknown/unknown), 734x1100 [SAR 1:1 DAR 367:550], 90k tbr, 90k tbn (attached pic)
ffmpeg -i input.mkv -c:v:0 h264_vaapi -c copy ....
-v verbose
nebo -v debug
.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.