{"id":167400,"date":"2020-03-25T17:53:26","date_gmt":"2020-03-25T10:53:26","guid":{"rendered":"https:\/\/www.icez.net\/blog\/?p=167400"},"modified":"2020-03-25T17:56:55","modified_gmt":"2020-03-25T10:56:55","slug":"ffmpeg-transcode-video-intel","status":"publish","type":"post","link":"https:\/\/www.icez.net\/blog\/167400\/ffmpeg-transcode-video-intel","title":{"rendered":"0244 | \u0e43\u0e0a\u0e49 GPU intel transcode video \u0e14\u0e49\u0e27\u0e22 ffmpeg"},"content":{"rendered":"<p>API \u0e43\u0e2b\u0e21\u0e48\u0e46 \u0e02\u0e2d\u0e07 ffmpeg \u0e08\u0e30\u0e17\u0e33\u0e07\u0e32\u0e19\u0e1a\u0e19 vaapi (video accelerator api) \u0e40\u0e1e\u0e23\u0e32\u0e30\u0e07\u0e31\u0e49\u0e19\u0e40\u0e27\u0e25\u0e32 transcode \u0e40\u0e25\u0e22\u0e15\u0e49\u0e2d\u0e07\u0e43\u0e0a\u0e49 interface \u0e02\u0e2d\u0e07 vaapi \u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13\u0e19\u0e35\u0e49<\/p>\n<pre lang=\"bash\">ffmpeg \\\n  -hwaccel vaapi -hwaccel_device \/dev\/dri\/renderD128 -hwaccel_output_format vaapi \\\n  -i inputfile.mp4 \\\n  -c:v h264_vaapi -b:v 1500k -profile:v main -g 100 \\\n  -c:a aac -b:a 128k \\\n  -f mp4 output.mp4\n<\/pre>\n<ol>\n<li>\u0e2a\u0e31\u0e48\u0e07 ffmpeg<\/li>\n<li>\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e43\u0e2b\u0e49\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13 video \u0e02\u0e32\u0e40\u0e02\u0e49\u0e32 \u0e44\u0e1b decode \u0e14\u0e49\u0e27\u0e22 vaapi (\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e43\u0e2b\u0e49\u0e40\u0e2d\u0e32\u0e1c\u0e25\u0e25\u0e31\u0e1e\u0e17\u0e4c\u0e44\u0e1b\u0e43\u0e0a\u0e49\u0e15\u0e48\u0e2d\u0e43\u0e19 vaapi \u0e44\u0e14\u0e49)<\/li>\n<li>\u0e23\u0e30\u0e1a\u0e38\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13 input<\/li>\n<li>\u0e23\u0e30\u0e1a\u0e38\u0e01\u0e32\u0e23\u0e41\u0e1b\u0e25\u0e07 format \u0e43\u0e2b\u0e49\u0e43\u0e0a\u0e49 vaapi h264 encoder \u0e1b\u0e23\u0e31\u0e1a profile\/bitrate \u0e15\u0e32\u0e21\u0e0a\u0e2d\u0e1a option \u0e2d\u0e37\u0e48\u0e19\u0e46 \u0e44\u0e1b\u0e14\u0e39\u0e43\u0e19 docs<\/li>\n<li>\u0e15\u0e31\u0e49\u0e07 codec \u0e40\u0e2a\u0e35\u0e22\u0e07<\/li>\n<li>\u0e40\u0e01\u0e47\u0e1a output \u0e40\u0e1b\u0e47\u0e19 format mp4 \u0e25\u0e07\u0e44\u0e1f\u0e25\u0e4c output.mp4<\/li>\n<\/ol>\n<p>ref: https:\/\/trac.ffmpeg.org\/wiki\/Hardware\/VAAPI<\/p>\n<p>\u0e41\u0e16\u0e21 \u0e2d\u0e31\u0e19\u0e19\u0e35\u0e49\u0e43\u0e0a\u0e49 vlc clean \u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13\u0e01\u0e25\u0e49\u0e2d\u0e07\u0e27\u0e07\u0e08\u0e23\u0e1b\u0e34\u0e14 \u0e01\u0e48\u0e2d\u0e19\u0e2a\u0e48\u0e07\u0e43\u0e2b\u0e49 ffmpeg transcode \u0e15\u0e48\u0e2d (\u0e44\u0e21\u0e48\u0e23\u0e39\u0e49\u0e17\u0e33\u0e44\u0e21 ffmpeg transcode \u0e15\u0e23\u0e07\u0e46 \u0e44\u0e21\u0e48\u0e44\u0e14\u0e49)<\/p>\n<pre lang=\"bash\">vlc \\\n 'rtsp:\/\/192.168.1.102\/user=admin&amp;password=&amp;channel=1&amp;stream=0.sdp?' \\\n  --sout '#duplicate{dst=std{access=file,mux=ts,dst=-}}' | \\\n  ffmpeg \\\n    -hwaccel vaapi -hwaccel_device \/dev\/dri\/renderD128 -hwaccel_output_format vaapi \\\n    -i - \\\n    -c:v h264_vaapi -b:v 1500k -profile:v main -g 100  \\\n    -y -f flv rtmp:\/\/127.0.0.1\/live\/cctv2\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>API \u0e43\u0e2b\u0e21\u0e48\u0e46 \u0e02\u0e2d\u0e07 ffmpeg \u0e08\u0e30\u0e17\u0e33\u0e07\u0e32\u0e19\u0e1a\u0e19 vaapi (video accelerator api) \u0e40\u0e1e\u0e23\u0e32\u0e30\u0e07\u0e31\u0e49\u0e19\u0e40\u0e27\u0e25\u0e32 transcode \u0e40\u0e25\u0e22\u0e15\u0e49\u0e2d\u0e07\u0e43\u0e0a\u0e49 interface \u0e02\u0e2d\u0e07 vaapi \u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13\u0e19\u0e35\u0e49 ffmpeg \\ -hwaccel vaapi -hwaccel_device \/dev\/dri\/renderD128 -hwaccel_output_format vaapi \\ -i inputfile.mp4 \\ -c:v h264_vaapi -b:v 1500k -profile:v main -g 100 \\ -c:a aac -b:a 128k \\ -f mp4 output.mp4 \u0e2a\u0e31\u0e48\u0e07 ffmpeg \u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e43\u0e2b\u0e49\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13 video \u0e02\u0e32\u0e40\u0e02\u0e49\u0e32 \u0e44\u0e1b decode \u0e14\u0e49\u0e27\u0e22 vaapi (\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e43\u0e2b\u0e49\u0e40\u0e2d\u0e32\u0e1c\u0e25\u0e25\u0e31\u0e1e\u0e17\u0e4c\u0e44\u0e1b\u0e43\u0e0a\u0e49\u0e15\u0e48\u0e2d\u0e43\u0e19 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-167400","post","type-post","status-publish","format-standard","hentry","category-misc"],"_links":{"self":[{"href":"https:\/\/www.icez.net\/blog\/wp-json\/wp\/v2\/posts\/167400","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.icez.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.icez.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.icez.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.icez.net\/blog\/wp-json\/wp\/v2\/comments?post=167400"}],"version-history":[{"count":11,"href":"https:\/\/www.icez.net\/blog\/wp-json\/wp\/v2\/posts\/167400\/revisions"}],"predecessor-version":[{"id":167411,"href":"https:\/\/www.icez.net\/blog\/wp-json\/wp\/v2\/posts\/167400\/revisions\/167411"}],"wp:attachment":[{"href":"https:\/\/www.icez.net\/blog\/wp-json\/wp\/v2\/media?parent=167400"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.icez.net\/blog\/wp-json\/wp\/v2\/categories?post=167400"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.icez.net\/blog\/wp-json\/wp\/v2\/tags?post=167400"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}