Проблема в том, что результат, возвращаемый 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