代码之家  ›  专栏  ›  技术社区  ›  DrJessop

使用ffmpeg和Youtube dl从Youtube视频下载几秒钟的音频会导致[Youtube]:没有此类文件或目录错误

  •  0
  • DrJessop  · 技术社区  · 5 年前

    ffmpeg -ss 60 -t 10 -i $(youtube-dl -f 140 https://www.youtube.com/watch?v=kDCk3hLIVXo) output.mp3
    

    这应该从视频的1分钟标记开始获得10秒的音频,并将其写入output.mp3。如果我单独运行youtube dl命令,然后运行ffmpeg命令,并将整个视频音频作为输入,它就会工作。但是,我不想下载整个视频,也不想用几秒钟的音频创建一个新文件。

    在它的当前状态下,我得到了[youtube]:没有这样的文件或目录错误。有人知道我如何解决这个问题并保持一致吗?

    1 回复  |  直到 5 年前
        1
  •  1
  •   l'L'l    5 年前

    问题是从返回的输出 youtube-dl 是几行信息,所以 ffmpeg 不知道如何正确处理它。

    您希望返回文件的实际名称,而不包含任何其他信息;像工具一样的东西 awk sed libmp3lame -&燃气轮机; mp3 ).

    例子

    ffmpeg -ss 60 -t 10 $(youtube-dl -f 140 -g https://www.youtube.com/watch?v=kDCk3hLIVXo | \
    sed "s/.*/-i &/") -c:v copy -codec:a libmp3lame output.mp3
    

    此命令应返回音频 mp3 文件60秒,其中持续时间为10秒。

    结果

    output.mp3: Audio file with ID3 version 2.4.0, contains:MPEG ADTS, layer III, v1,  64 kbps, 44.1 kHz, Stereo