Как скачать часть видео с YouTube-DL или что-то еще?

Я хотел бы иметь возможность загружать только часть видео. Например, возможность указать время начала и / или окончания загрузки. Таким образом, когда пользователь вводит время начала и окончания видео, он должен загружать только часть клипа в пределах отметок времени. Возможно ли это?

4
задан 30 December 2017 в 03:59

4 ответа

Существует действительно множество методов, доступных онлайн для выполнения этого. Одна довольно основная техника является следующим одним лайнером, который работает достаточно хорошо над моей системой с клипом YouTube:

ffmpeg -i $(youtube-dl -f 22 --get-url https://www.youtube.com/watch?v=ZbZSe6N_BXs) \
-ss 00:00:10 -t 00:00:30 -c:v copy -c:a copy \
happy.mp4

2 раздела, которые управляют клипом, запускаются и заканчиваются в этом примере:

  1. - ss 0:00:10: Помещенный после входа регистрируют, это кодирует и отбрасывает образцы вплоть до 10 вторых меток. Это медленнее и менее эффективно, чем размещение искать опций перед входным файлом (входной поиск), но работает лучше в этом примере (в особенности при копировании аудио-и видеопотоков)
  2. - t 0:00:30: Это указывает продолжительность кодирования, в этом случае 30 секунд только

Я протестировал это экстенсивно с YouTube и всеми работами хорошо над моей собственной системой...

Ссылки:

  • Диапазон Загрузки youtube-dl: Большое обсуждение возможностей, некоторые немного дезинформированные :)
  • FFmpeg: Поиск сплошного контура поиска, вырезания и корректного синтаксиса единицы измерения времени
10
ответ дан 23 November 2019 в 11:38

Используйте --postprocessor-args параметр для передачи аудио/видеовыхода ffmpeg быть отредактированным (процессор). По-видимому, ffmpeg необходим, чтобы быть установленным.

--postprocessor-args берет 3 аргумента и значения (это - просто пример, проверьте страницу руководства ffmpeg с man ffmpeg для больше):

  • -ss HH:MM:SS : время начала для взятия
  • -to HH:MM:SS : время окончания
  • -t HH:MM:SS : продолжительность для взятия

Примеры:

  • Начните кодировать в 15 секунд и остановку в 1 минуту 20 секунд:

    $ youtube-dl --postprocessor-args "-ss 0:0:15 -to 0:1:20" '[video_URL]'
    
  • Начните кодировать в 15 секунд и займите только следующие 3 минуты 5 секунд:

    $ youtube-dl --postprocessor-args "-ss 0:0:15 -t 0:3:5" '[video_URL]'
    

PS: youtube-dl загрузит все медиа прежде, чем обработать его и удалит его после.

4
ответ дан 23 November 2019 в 11:38

Инструмент сантехник позволяет легко это сделать. Установите приложение с помощью:

snap install plumber

После установки оно появится в меню ваших приложений.

При запуске приложения вставьте нужную ссылку на YouTube в поле (выделено красным на снимке экрана ниже) или воспользуйтесь встроенной функцией поиска YouTube, нажав на значок YouTube (выделено желтым цветом).

Выберите начальную и конечную точки. Вы можете сохранить результат в виде видео или GIF. plumber application window

4
ответ дан 5 July 2020 в 13:34

Я следил за ответом andrew.46. Однако вы хотели бы поставить -ss и -t или -to перед -i для правильного поиска. В противном случае вы загрузите больше, чем хотите. (-t указывает продолжительность, а -to указывает точку вывода; будьте осторожны, поскольку они разные)

В руководстве ffmpeg нам говорят использовать -t или -to после -i. Однако, исходя из моего опыта работы с ffmpeg, -to не работает после -i; он будет распознан как -t.

Мой пример команды: (загрузить скользящую часть корзины «Coffee Run»)

ffmpeg -ss 00:00:37 -to 00:00:44 -i "$(youtube-dl -f best --get-url 'https://youtu.be/PVGeM40dABA')" -c:v copy -c:a copy coffee_sliding.mp4
3
ответ дан 11 August 2020 в 20:08

Другие вопросы по тегам:

Похожие вопросы: