首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用youtube-dl刻录下载的youtube视频的副标题/硬编码

如何用youtube-dl刻录下载的youtube视频的副标题/硬编码
EN

Stack Overflow用户
提问于 2019-12-12 11:43:49
回答 1查看 4.4K关注 0票数 4

此命令下载视频并将自动生成的youtube字幕嵌入到文件中。

代码语言:javascript
运行
复制
youtube-dl.exe -ci -f "bestvideo[ext=mp4]"+"bestaudio[ext=m4a]" --write-auto-sub  --embed-subs --merge-output-format mp4 https://www.youtube.com/watch?v=k4rCdHsdiss

然而,副标题只是嵌入。我希望它被烧毁/硬编码,这样它就可以在不嵌入的支持平台上播放,比如跑步机。

我使用的是windows 10

EN

回答 1

Stack Overflow用户

发布于 2019-12-14 04:35:33

youtube-dl不能单独烧掉字幕。您需要使用像FFmpeg或avconv这样的后置处理器。youtube-dl在内部使用它们来执行一些任务。当您成功地使用bestvideo+bestaudio参数时,您已经在系统中安装了其中一个参数。avconv是FFmpeg的一个分支,所以它们基本上都接受相同的参数。我将在这里展示FFmpeg的案例。

youtube-dl有一个向后处理器添加参数的功能,但我不知道如何使用它来解决这个任务。

另一种可能是使用--exec标志。遗憾的是,我现在没有Windows机器,所以我只编写了Linux变体。

代码语言:javascript
运行
复制
youtube-dl -f "[height=360][ext=mp4]+bestaudio[ext=m4a]" --write-sub --write-autosub --embed-subs --exec "mkdir temp && ffmpeg -i {} -vf subtitles={}:force_style='FontName=Arial' -acodec copy temp/{} && mv -f temp/{} {} && rm -r temp" --restrict-filenames AO4In7d6X-c

这是一个单行命令,但它有几个缺陷:

  1. 您必须使用--restrict-filenames才能使其工作。没有更好的文件名。
  2. 我看不出有超过一个选项的字幕样式,即字体名称,字体颜色和字体大小。
  3. 非常麻烦。

因此,我最好的猜测是,在下载了youtube-dl视频之后,手动使用FFmpeg或者使用批处理脚本。虽然没有在Windows上进行测试,但它应该运行得很好。

代码语言:javascript
运行
复制
ffmpeg.exe -i "input.mp4" -vf subtitles="filename='input.mp4':force_style='FontSize=20,FontName=Arial'" -c:v libx264 -x264-params crf=22 -preset fast -profile:v high "output.mp4"

  1. input.mp4必须是一个带有嵌入式subtitles.
  2. FFmpeg的文件,必须在libass的支持下编译。键入没有参数的ffmpeg.exe并查找--enable-libasslibx264也是推荐的。要调优编码的速度,
  3. 可以使用不同的预设。允许的数值是超快,超快,非常快,中,慢,慢,非常慢,安慰剂。更快的预置意味着更大的文件大小。
  4. 来调优质量使用crf参数。数字越小,质量越好,文件大小也越大。从16到30的数字是最佳的。
  5. 如果文件不能在一些老玩家上播放,您可以尝试使用配置文件baseline并降低级别。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59303838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档