Загрузка нескольких секунд аудио с видео Youtube с ffmpeg и youtube-dl Результаты в [youtube]: нет такого файла или ошибка каталога - PullRequest
0 голосов
/ 20 декабря 2018

Ниже приведена программа, которую я написал:

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]: таких файлов или каталогов нет.Кто-нибудь знает, как я могу это исправить и сохранить в одну строку?

1 Ответ

0 голосов
/ 20 декабря 2018

Проблема в том, что результат, возвращаемый 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...