Portál AbcLinuxu, 13. května 2025 00:40

Dotaz: ffmpeg hw encoding z h265 na h264 intel

18.11.2022 14:52 iko | skóre: 7
ffmpeg hw encoding z h265 na h264 intel
Přečteno: 668×
Odpovědět | Admin

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!
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

18.11.2022 14:54 iko | skóre: 7
Rozbalit Rozbalit vše Re: ffmpeg hw encoding z h265 na h264 intel
Odpovědět | | Sbalit | Link | Blokovat | Admin
Plus su tam este dalsie streamy ako vlozene obrazky (attached pic) video mjpeg.
18.11.2022 15:03 PetebLazar | skóre: 34 | blog: l_eonardovo_odhodlani
Rozbalit Rozbalit vše Re: ffmpeg hw encoding z h265 na h264 intel
18.11.2022 16:07 iko | skóre: 7
Rozbalit Rozbalit vše Re: ffmpeg hw encoding z h265 na h264 intel
podla wiki nejaky priklad qsv:
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
18.11.2022 18:21 PetebLazar | skóre: 34 | blog: l_eonardovo_odhodlani
Rozbalit Rozbalit vše Re: ffmpeg hw encoding z h265 na h264 intel
Zkusil bych tam dát -pix_fmt yuv420p, zda se hlášení změní.
21.11.2022 09:38 iko | skóre: 7
Rozbalit Rozbalit vše Re: ffmpeg hw encoding z h265 na h264 intel
s -pix_fmt yuv420p
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
18.11.2022 17:41 X
Rozbalit Rozbalit vše Re: ffmpeg hw encoding z h265 na h264 intel
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tadz by asi stalo zacit tim, ze upresnis jakou mas presne grafickou kartu a jake jsou jeji moznosti. Dost mozna se pokousis o neco co tvuj HW proste neumi.
19.11.2022 09:55 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: ffmpeg hw encoding z h265 na h264 intel
Potom by som si ešte overil či vainfo poskytuje HW enkódovanie do daného formátu, a či nechýbajú nejaké knižnice ktoré sa nemuseli nainštalovať samé. Keď som to riešil na Ubuntu, tak to chcelo mať doinštalovaných cca 10 balíčkov. Ale to bolo len pre Intel UHD a IrisXe.
21.11.2022 09:46 iko | skóre: 7
Rozbalit Rozbalit vše Re: ffmpeg hw encoding z h265 na h264 intel
Inak normalne viem enkodovat pomocou hw do h264, tu mam ale problem, ako vysvetlit ffmpeg, ze ma prekodovat len hlavny video stream a titulkove nie. Pomocou HandBrake sa mi to podarilo s tym, ze je tam vsetko co ma byt. Ak pouziva ffmpeg, tak keby som vedel, ake parametre pusta do ffmpeg... V tych parametroch ffmpeg sa nejak stracam.

Grafiku mam VGA compatible controller: Intel Corporation HD Graphics 630 (rev 04)

ffmpeg -encoders | grep qsv:
 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)
21.11.2022 10:19 jejda | skóre: 25 | blog: jejda
Rozbalit Rozbalit vše Re: ffmpeg hw encoding z h265 na h264 intel
-c:s copy
S 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:0 
nač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.
21.11.2022 17:11 iko | skóre: 7
Rozbalit Rozbalit vše Re: ffmpeg hw encoding z h265 na h264 intel
dospel som do stadia, ze mi robia problem streamy 12-16
  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)
21.11.2022 19:58 jejda | skóre: 25 | blog: jejda
Rozbalit Rozbalit vše Re: ffmpeg hw encoding z h265 na h264 intel
Moc nechápu čeho přesně se snažíš docílit, no tipnul bych si že první video stream se má překódovat ale ty obrázky je potřeba jenom zkopírovat. A ffmpeg si myslí že chceš enkódovat všecky video stopy (obrázek je taky video stopa) a na tom to spadne. Taky mi není moc jasné naco je tam ten cover pětkrát? Zkusím tak střelit od boku:
ffmpeg -i input.mkv -c:v:0 h264_vaapi -c copy ....
22.11.2022 09:30 elenril
Rozbalit Rozbalit vše Re: ffmpeg hw encoding z h265 na h264 intel
Tak třeba kdyby sem tazatal dal všechny informace (tj. plnou cmdline a výstup), tak by nebylo nutné tolik hádat.
24.11.2022 08:02 iko | skóre: 7
Rozbalit Rozbalit vše Re: ffmpeg hw encoding z h265 na h264 intel
v uvodnom prispevku je cely cmdline, je tam aj vystup.

ide mi o prekodovanie h265 na h264, ostatne streamy skopirovat. kodovat (pripadne aj dekodovat) chcem pomocou hw (grafika integrovana v procesore intel)
24.11.2022 11:44 elenril
Rozbalit Rozbalit vše Re: ffmpeg hw encoding z h265 na h264 intel
Není tam celý výstup, jsou tam jen jeho náhodné kusy o kterých si asi myslíš, že jsou ty podstatné. Jenomže když moc nechápeš co děláš, tak ani nemůžeš posoudit co je důležité a co není. Proto se od uživatelů v bugreportech vždy chce plný výstup, a ještě s -v verbose nebo -v debug.
24.11.2022 12:10 gag
Rozbalit Rozbalit vše Re: ffmpeg hw encoding z h265 na h264 intel
nemluve o tom, ze nazacatku neslo nic, ted mu delaji problemy "jen" streamy 12-16....

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.