下面是我写的程序:
ffmpeg -ss 60 -t 10 -i $(youtube-dl -f 140 https://www.youtube.com/watch?v=kDCk3hLIVXo) output.mp3这应该得到10秒的音频,从视频的一分钟开始,然后写到output.mp3。如果我单独运行youtube-dl命令,然后使用整个视频音频作为输入的ffmpeg命令,它就能工作。但是,我不想下载整个视频以及创建一个新的文件,只有几秒钟的音频。
在它当前的状态下,我得到了youtube:没有这样的文件或目录错误。有人知道我怎样才能解决这个问题并把它保持在一条线上吗?
发布于 2018-12-20 00:43:16
问题是从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此命令应返回60秒的音频mp3文件,其中持续时间为10秒。
结果
output.mp3: Audio file with ID3 version 2.4.0, contains:MPEG ADTS, layer III, v1, 64 kbps, 44.1 kHz, Stereohttps://stackoverflow.com/questions/53860796
复制相似问题