Поиск по сайту:

Загрузите часть видео с Youtube с помощью Youtube-dl и FFmpeg

Несмотря на то, что существует множество программ для загрузки и кодирования видео, я предпочитаю использовать Youtube-dl и FFmpeg. Этих двух утилит достаточно для загрузки видео из Интернета, а также кодирования, декодирования, транскодирования, обрезки и мультиплексирования загруженных видео. Сегодня мы увидим, как загрузить часть видео с YouTube с помощью Youtube-dl и FFmpeg в Linux.

Прежде чем я узнаю этот совет, я обычно сначала загружаю все видео с помощью Youtube-dl, а затем сокращаю его до желаемой продолжительности с помощью FFmpeg, как показано ниже.

Чтобы скачать видео, я бы сделал:

youtube-dl <youtube-link>

А затем обрежьте загруженное видео, используя время начала и окончания видеоклипа, как мне нравится, с помощью FFmpeg, используя команду:

ffmpeg -i input_video.mp4 -ss 00:01:00 -to 00:03:00 -c copy output_video.mp4

Это то, что я делал, чтобы получить только часть видео. Если вы все еще используете этот метод для загрузки и обрезки видео, не беспокойтесь. Я знаю немного лучший способ загрузки частей видео с YouTube вместо полного видео. Читай дальше!

Загрузите часть видео с Youtube с помощью Youtube-dl и FFmpeg.

Сначала мы увидим, как загрузить определенную часть видео с YouTube с помощью скрипта Youtube-dl.

Для целей данного руководства я буду использовать это видео с официального канала YouTube для нашего блога OSTechNix. Это видео длится 2:43 минуты и в основном демонстрирует, как запускать веб-браузеры в полноэкранном режиме в Linux.

Если вы еще не установили Youtube-dl на свой компьютер с Linux, воспользуйтесь ссылками, прикрепленными в первом абзаце.

В Youtube-dl есть параметр --postprocessor-args для загрузки определенной части видео YouTube или видео с нескольких других веб-сайтов.

Чтобы загрузить часть видео с помощью Youtube-dl, запустите:

youtube-dl --postprocessor-args "-ss 00:01:00 -to 00:02:00" "https://www.youtube.com/watch?v=dc7I-i7sPrg"

Здесь --ss 00:01:00 — время начала видео, а -to 00:02:00 — время окончания. Таким образом, приведенная выше команда начнет кодирование через 1 минуту и закончится через 2 минуты.

Вы также можете использовать флаг -t, чтобы указать общую продолжительность.

youtube-dl --postprocessor-args "-ss 00:01:00 -t 00:00:50" "https://www.youtube.com/watch?v=dc7I-i7sPrg"

Кодирование начнется через 1 минуту и займет только следующие 50 секунд.

Обратите внимание, что Youtube-dl загружает видео целиком перед его обработкой. После обрезки видео до заданной длины исходное видео будет удалено и останется только часть видео. Если вы хотите сохранить оба, просто передайте флаг -k.

Если вы хотите загружать не все видео, а только его часть, вы можете объединить ffmpeg и youtube-dl, чтобы загрузить определенную часть видео с YouTube, как показано ниже:

youtube-dl --external-downloader ffmpeg --external-downloader-args "-ss 00:01:00.00 -to 00:02:00.00" -f best "https://www.youtube.com/watch?v=dc7I-i7sPrg"

Здесь мы использовали флаг -f best для загрузки аудио и видео наилучшего качества.

Приведенная выше команда загрузит данное видео с Youtube с помощью сценария Youtube-dl, а затем обрежет его, начиная с 1 минуты и заканчивая 2 минутой.

Вот еще одна версия команды, выполняющая ту же работу.

ffmpeg -ss 00:01:00 -to 00:02:00 -i "$(youtube-dl -f best --get-url 'https://www.youtube.com/watch?v=dc7I-i7sPrg')" -c:v copy -c:a copy kiosk.mp4

Эта команда делает то же самое, что и предыдущая, но сохраняет выходное видео как «kiosk.mp4».

Обновление:

Как прокомментировал ниже один из наших читателей, если приведенный выше совет по какой-либо причине не работает, просто добавьте десятичное число после секунд, например "-ss 00:01:00.00 -to 00:02: 00.00" вместо "-ss 00:01:00 -to 00:02:00". Хотя лично я это не проверял. Однако читатель утверждает, что это действительно работает.

Надеюсь это поможет.

Ссылка

Избранное изображение: kapil 99 из Pixabay.

Статьи по данной тематике