Comments 20
Спасибо, пригодится для одного из моих проектов!
Вообще ffmpeg довольно мощная штука
Хочется добавить, что если вдруг нужно провести любые манипуляции в автоматическом режиме(скриптом, например) с видео и/или аудио файлом стоит посмотреть что там умеет ffmpeg.
Ускорение/замедление/оверлей/объединение/разъединение/переконвертация, список возможностей очень обширный.
ага — я прямо прифигел что он умеет делать) до этого приходилось качать файл и на сервере уже с ними работать, а оказывается можно все делать одним инструментом, одной командой, при этом алгоритмы оптимизированные. Единственная сложность — скомпилировать ffmpeg может быть)
И даже для компиляции есть простой скрипт который умеет инклудить много проприетарных либ внутрь себя (раньше было особенно актуально для nvenc, ибо его не было ещё в коде родного ffmpeg'а). Разве что кофе на варит) Разработан кажется хабравчанином, только ник запамятовал. Вот ссылка (https://github.com/rdp/ffmpeg-windows-build-helpers), надеюсь не сочтут за рекламу.
Это (и многое другое) умеет youtube-dl. Но самому написать, конечно, интереснее :)
Обрезать видеофайл в произвольном формате — не задача youtube-dl. В этом же тикете приведён пример:
То же самое делает автор статьи, только вместо youtube-dl пользуется какой-то питоновской библиотекой. Библиотека оказалась не очень очевидна из консоли, в отличие от youtube-dl, поэтому появилась целая статья на хабре с предложением читать xml и вызывать ffmpeg изнутри питоновского скрипта.
ffmpeg -ss 3:59:10 -i $(youtube-dl -f 22 -g 'https://www.youtube.com/watch?v=mMZriSvaVP8') -t 3:06:40 -c copy react-spot.mp4
То же самое делает автор статьи, только вместо youtube-dl пользуется какой-то питоновской библиотекой. Библиотека оказалась не очень очевидна из консоли, в отличие от youtube-dl, поэтому появилась целая статья на хабре с предложением читать xml и вызывать ffmpeg изнутри питоновского скрипта.
Статья называется «FFMPEG. Загружаем часть видео с YouTube». Она, в первую очередь, про ffmpeg, а не про как именно получить прямую ссылку на видео/аудио. Соответственно писать «Это (и многое другое) умеет youtube-dl.» не уточняя о чём речь — крайне некорректно.
Да, про то что по ссылке всё сводится к ffmpeg я сразу написал, зачем было это повторять?
Да, про то что по ссылке всё сводится к ffmpeg я сразу написал, зачем было это повторять?
ну не претендую на «целую статью на хабре»(который скатился и вынуждает уже не тратить время на «целые статьи»), но совет как я считаю довольно полезный будет тем, кто занимается проектами с видео/аудио.
Youtube-dl штука полезная, но очень медленная в большинстве случаев и недостаточно гибкая — использовать в реальном проекте можно разве что для получения метаданных. Я в своем изначально пользовался pytube — она умеет и качать видео и on_progress callback есть и age_restricted обходит, ну и много чего для работы с youtube из кода — лично мне использовать вызовы консольных приложений без обертки не очень удобно
Youtube-dl штука полезная, но очень медленная в большинстве случаев и недостаточно гибкая — использовать в реальном проекте можно разве что для получения метаданных. Я в своем изначально пользовался pytube — она умеет и качать видео и on_progress callback есть и age_restricted обходит, ну и много чего для работы с youtube из кода — лично мне использовать вызовы консольных приложений без обертки не очень удобно
А возможно с помощью этого инструмента извлечь аудиопоток из стрима? Сейчас довольно много годных трансляций музыкальных идет на ютубе не прерывных.
да — можно, более того — можно задерживать аудио относительно видео, прокидывать из потока в поток и тд
Пока к сожалению, не получается создать экземпляр с подобным стримом
>>> yt = YouTube('https://www.youtube.com/watch?v=pJvDIO5P4p0')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\pytube\__main__.py", line 84, in __init__
self.prefetch_init()
File "C:\Python27\lib\site-packages\pytube\__main__.py", line 93, in prefetch_
init
self.init()
File "C:\Python27\lib\site-packages\pytube\__main__.py", line 128, in init
mixins.apply_signature(self.player_config_args, fmt, self.js)
File "C:\Python27\lib\site-packages\pytube\mixins.py", line 31, in apply_signa
ture
url = stream['url']
youtube-dl --extract-audio --audio-quality 0 --audio-format mp3 "https://www.youtube.com/watch?v=pJvDIO5P4p0"
(опять же должен быть установлен ffmpeg т.к. youtube отдаёт webm или m4a, который конвертируется в mp3)
Озадачился таким-же вопросом, в идеале хотелось бы реализовать ретрансляцию:
YouTube LIVE -> свой сервер -> что-то удобоваримое для chrome или плееров
YouTube LIVE -> свой сервер -> что-то удобоваримое для chrome или плееров
я пока так выхожу из положения
Это отдает нам плейлист который понимает уже аимп например. Но не понимает MPD (
youtube-dl -f 95 -g "https://www.youtube.com/watch?v=_4BE2wBVCv8"
Это отдает нам плейлист который понимает уже аимп например. Но не понимает MPD (
А для видео наверно так, перевод в ts
ffmpeg -i $(youtube-dl -f -g ) -copy <file_name>.ts
А там видимо веб серверу его скармливать этот файл. Могу ошибаться
ffmpeg -i $(youtube-dl -f -g ) -copy <file_name>.ts
А там видимо веб серверу его скармливать этот файл. Могу ошибаться
Sign up to leave a comment.
FFMPEG. Загружаем часть видео с YouTube