强制 MP4、BA 和

强制 MP4、BA 和

跳转到 d.1 查看我正在使用的解决方法命令。

我为什么要这么做?

有时最好只执行 -f ba[ext=m4a] 然后将扩展名更改为 .mp4,我担心它有时会失败(或者可以更简洁地完成)!

其他时候:我需要最低质量的文件,必须是视频,但仍然可以大致了解视觉上发生的事情(通常为 144p 或 360p)。如果可能的话,我不想牺牲音频质量。我总是必须压缩和重新格式化东西:有时需要一个小时——我真的想减少步骤。

我的目标是:

  • 了解yt-dlp和ffmpeg如何更好地工作。
  • 下载最高音频质量和一个特定视频质量
  • 使用尽可能少的命令处理所有潜在输入。
  • 获取 mp4 输出(不是 webm,不是原始音频),始终如一;理想情况下,如果可能的话,不要使用 ffmpeg;或者,使用在一行中包含 yt-dlp 字符串和 ffmpeg 字符串的单个命令(例如yt-dlp -flags && ffmpeg -flags)。

已知问题:

最佳猜测 不工作

A。

  1. yt-dlp https://url.com/uri -f wv+ba* -o "./my/location/filename.mp4"其中 wv 表示最差音频,ba 表示最佳音频,应该*意味着“以某种方式使最佳音频成为优先!”遗憾的是,我得到的结果好坏参半:通常是没有音频的最差视频文件。
  2. yt-dlp https://url.com/uri -f wv+ba -o "./my/location/filename.mp4". 给出错误的扩展名。

b.

  1. yt-dlp https://url.com/uri -f ba[ext=m4a] -o "./my/location/filename.m4a"这给了我一个 m4a 文件,然后我需要执行重命名命令,[ext=mp4]这不是一个选项。这也没有提供视频,这是并不理想

C。

  1. yt-dlp https://url.com/uri -f 134+ba -o "./my/location/filename.mp4" --merge-output-format mp4,其中id 134是 360p 视频。这给出ERROR: Postprocessing: Stream #1:0 -> #0:1 (copy),并且没有合并的输出文件(只有两个仅包含音频和仅包含视频的 tmp 文件)。
  2. yt-dlp https://url.com/uri -f 134+ba -o "./my/location/filename.mp4" --merge-output-format mkv && rename filename.mkv filename mp4,其中id 134是 360p 视频。这给出一个 mp4 文件,但系统将其视为 mkv 文件(无法用于所需用途)。

d.

  1. yt-dlp https://url.com/uri -f 134 -o "./my/location/filename.webm && yt-dlp https://url.com/uri -f ba -o "./my/location/filename.m4a" && ffmpeg -i .\relativePath\inputFilename.f251.webm -i .\relativePath\inputFilename.f248.webm -c:v mpeg4 -q:v 0 -q:a 0 -c:v copy .\relativePath\outputFilename.mp4". 注意:音频/视频可以按任意顺序输入,但-i 标志应该放在第一位

关于解决方法d.1:

如果我使用-q:a 100,输出文件将比输入文件大 10 倍;所以,我认为我没有获得无损音频......

注意:音频/视频可以按任意顺序输入,但-i 标志应该放在第一位

另外,重要的是不要使用星号,bv*+ba因为这将优先考虑组合音频的最佳视频质量,并且您需要单独的文件:您可以通过排除星号来保证单独的文件。

相关内容