如何在 macOS 上使用 ffmpeg 和 gpu 支持
how to use ffmpeg with gpu support on macos
当我执行 ffmpeg 命令时,它使用我的 cpu 来渲染视频 os,完成这项工作需要很长时间,我如何强制 ffmpeg 使用我的 gpu 来渲染?
我有一个 mac os 和 AMD Radeon R9 M370X 2048 MB 显卡。
我必须安装什么以及我必须使用什么命令来完成这项工作?
我在我的脚本 运行:
时使用这个命令
$source_decoder = "ffmpeg -i $film_aval_source -vf drawtext=\"text_shaping=1:fontfile=$font_source:
text='$esme_film': fontcolor=black: fontsize=$font_size: box=1: boxcolor=black@0:
boxborderw=0: x=(w-text_w)/2: y=(h-text_h)/2 :enable='between(t,5,10)'\" -c:a copy -force_key_frames 0:05:00,0:6:00 $film_aval_dest";
$source_decoder = "ffmpeg -i $film_aval_source -i ".$path."/Data.jpg -filter_complex '[0:v][1:v]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2:enable=between(t\,5\,10)' -codec:a copy $film_aval_dest";
$convert1 = "ffmpeg -i $film_aval_dest -map 0 -flags:v +global_header -c:v libx264 -bsf:v dump_extra ".$path."output1.ts";
$convert_logo = "ffmpeg -i $path_tmp -i ".$main_path."/data/logo.png -filter_complex 'overlay=4:4' -codec:a copy $path_tmp2";
$convert2 = "ffmpeg -i $path_tmp2 -map 0 -flags:v +global_header -c:v libx264 -bsf:v dump_extra ".$path."output2.ts";
$merge = "ffmpeg -i 'concat:".$path."output1.ts|".$path."output2.ts' -map 0 -flags:v +global_header -c:v libx264 -bsf:v dump_extra ".$path."output_new.ts";
$convert3 = "ffmpeg -i ".$path."output_new.ts -acodec aac -vcodec copy ".$path."video_out2.mp4";
谢谢
对于 macOS 上的硬件加速视频编码,请使用:
Format
Encoder
H.264
-c:v h264_videotoolbox
HEVC/H.265
-c:v hevc_videotoolbox
示例:
ffmpeg -i input.mov -c:v h264_videotoolbox output.mp4
- 有关这些编码器的特定选项,请参阅
ffmpeg -h encoder=h264_videotoolbox
和 ffmpeg -h encoder=hevc_videotoolbox
。
- 这些编码器不支持
-crf
所以你必须使用-b:v
设置码率,比如-b:v 6000k
.
当我执行 ffmpeg 命令时,它使用我的 cpu 来渲染视频 os,完成这项工作需要很长时间,我如何强制 ffmpeg 使用我的 gpu 来渲染? 我有一个 mac os 和 AMD Radeon R9 M370X 2048 MB 显卡。 我必须安装什么以及我必须使用什么命令来完成这项工作? 我在我的脚本 运行:
时使用这个命令 $source_decoder = "ffmpeg -i $film_aval_source -vf drawtext=\"text_shaping=1:fontfile=$font_source:
text='$esme_film': fontcolor=black: fontsize=$font_size: box=1: boxcolor=black@0:
boxborderw=0: x=(w-text_w)/2: y=(h-text_h)/2 :enable='between(t,5,10)'\" -c:a copy -force_key_frames 0:05:00,0:6:00 $film_aval_dest";
$source_decoder = "ffmpeg -i $film_aval_source -i ".$path."/Data.jpg -filter_complex '[0:v][1:v]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2:enable=between(t\,5\,10)' -codec:a copy $film_aval_dest";
$convert1 = "ffmpeg -i $film_aval_dest -map 0 -flags:v +global_header -c:v libx264 -bsf:v dump_extra ".$path."output1.ts";
$convert_logo = "ffmpeg -i $path_tmp -i ".$main_path."/data/logo.png -filter_complex 'overlay=4:4' -codec:a copy $path_tmp2";
$convert2 = "ffmpeg -i $path_tmp2 -map 0 -flags:v +global_header -c:v libx264 -bsf:v dump_extra ".$path."output2.ts";
$merge = "ffmpeg -i 'concat:".$path."output1.ts|".$path."output2.ts' -map 0 -flags:v +global_header -c:v libx264 -bsf:v dump_extra ".$path."output_new.ts";
$convert3 = "ffmpeg -i ".$path."output_new.ts -acodec aac -vcodec copy ".$path."video_out2.mp4";
谢谢
对于 macOS 上的硬件加速视频编码,请使用:
Format | Encoder |
---|---|
H.264 | -c:v h264_videotoolbox |
HEVC/H.265 | -c:v hevc_videotoolbox |
示例:
ffmpeg -i input.mov -c:v h264_videotoolbox output.mp4
- 有关这些编码器的特定选项,请参阅
ffmpeg -h encoder=h264_videotoolbox
和ffmpeg -h encoder=hevc_videotoolbox
。 - 这些编码器不支持
-crf
所以你必须使用-b:v
设置码率,比如-b:v 6000k
.