С нами с 31.10.03
Сообщения: 730
Рейтинг: 336
|
Добавлено: 07/12/15 в 09:22 |
Команда под unix:
nice /usr/local/bin/ffmpeg -y -i "_path_to_input_file_" -acodec libfaac -b:a 160k -s 1920x1080 -vcodec libx264 -movflags faststart -profile:v baseline -pix_fmt yuv420p -level:v 30 -crf 18 -vf "transpose=1" -metadata rotate=0 -threads 1 "_path_to_output_file_" :
Грубое описание:
nice - запускаем утилиту ffpmeg так чтобы она не жрала все ресурсы сервера
/usr/local/bin/ffmpeg - путь к утилите
-y - перезаписывать если файл с результаттом уже есть
-i "_path_to_input_file_" - так задается путь к исходному
-acodec libfaac -b:a 160k - настройки аудио: используем кодек libfaac, аудиобитрейт 160к
-s 1920x1080 - изменяем размер видео до 1920х1080 (HD)
-vcodec libx264 - для видео используем кодек libx264, который вроде как должен читаться всеми мобилками современными
-movflags faststart - переписываем хедеры в начало файла, чтобы запускалось сразу, без буфферицации полностью файла в кэш браузера (по идее, чтобы работала перемотка, надо еще настроить на сервере отдачу контента правильно)
Дальше сложнее, сам не очень в командах ффмпега, настройки для видео:
-profile:v baseline - видимо профиль для формата h.264, как раз чтобы подо все играло
-pix_fmt yuv420p - туда же настройки, чтобы под apple quichtime играло (https://trac.ffmpeg.org/wiki/Encode/H.264#iOS)
-level:v 30 - туда же, видимо, уровень сжатия по профилю baseline
-crf 18 - Constant Rate Factor, степень сжатия как раз
-vf "transpose=1" - так понимаю, поворачиваем вертикальное видео в горизонтальное (не уверен, возможно и без этого будет работать?)
-metadata - вырезаем все метаданные из файла (автор, кто когда и где создал)
rotate=0 - выравниваем к горизонтальному видео (не уверен, возможно и без этого будет работать?)
-threads 1 - сколько потоков ffmpeg запускать (насколько сильно грузить сервер)
"_path_to_output_file_" - куда писать результат
То же самое, но без HD:
nice /usr/local/bin/ffmpeg -y -i "_input_" -acodec libfaac -b:a 160k -s 640x360 -vcodec libx264 -movflags faststart -profile:v baseline -pix_fmt yuv420p -level:v 30 -crf 18 -vf "transpose=1" -metadata rotate=0 -threads 1 "_output_"
|
|
|
|
С нами с 31.10.03
Сообщения: 730
Рейтинг: 336
|
Добавлено: 07/12/15 в 09:27 |
sweetypie писал: | Кроме того, MilkSucker написал интересную вещь о прямой ссылке, это ещё одна сторона которая может влиять. Может, я путаю разные вещи, но, какой нибудь Хвидеос показывает какую то "замысловатую" ссылку на ролловере, не просто очевидный линк.
Ещё раз, спасибо за ваш ответ. |
Ссылка там как раз с хэшем для конкретного юзера / файла. Грубо говоря, берет твой айпи, и на 15-30 минут для тебя делает ключевую фразу для файла.
Физически файл лежит на domain.tld/file.mp4 , но напрямую он не доступен.
Только если дергать как domain.tld/file.mp4?hash=SOME_HASH
А в кэше как раз кодируется md5(USER_IP ++ VIDEO_FILE_URL ++ TIMEOUT_15_MINUTES), то есть для тебя файл в течении 15 минут отдается по прямой ссылке domain.tld/file.mp4?hash=erbger874h784hTI4t4i - потому и играется.
|
|
|
|
С нами с 17.11.15
Сообщения: 76
Рейтинг: -9
|
Добавлено: 11/12/15 в 13:22 |
MilkSucker, большое спасибо за такой полезный ответ!
Я так понимаю, что нужно локально установить ffmpeg, и попрактиковаться с ним.
Я не очень понимаю как Линукс версию установить, но в моём Кейвкрик (Ццбилл) сервере работает Петер, единственный, который разбирается во всём, что нужно, надеюсь, он поможет с установкой.
1. "-y - перезаписывать если файл с результаттом уже есть". Результат с тем же расширением? Это оригинал (с другим расшерением) не сотрёт?
2. "для видео используем кодек libx264, который вроде как должен читаться всеми мобилками современными".
Он включен в саму ffmpeg программу, или подгружается отдельно?
3.
Похоже, Вы очень важную вещь написали, но, я не до конца понял. На моих сайтах обычный CcBill логин через Strongbox, внутри Members директории выложены линки к файлам, находящимся в соседнем фолдере, и, собственно, всё.
На ролловер мауса я вижу http://sbxeCode.site.com/Members/videos/title.mp4, что больше напоминает вашу первую, не работающую версию. Для чего именно стоят "?passcode=sha1_hash_here" в Вашем втором примере, пожалуйста, объясните. Только, если можно, попроще, я в этом не очень разбираюсь.
MilkSucker, ещё раз большое спасибо.
|
|
|
|
С нами с 31.10.03
Сообщения: 730
Рейтинг: 336
|
Добавлено: 12/12/15 в 04:23 |
sweetypie писал: |
Я не очень понимаю как Линукс версию установить, но в моём Кейвкрик (Ццбилл) сервере работает Петер, единственный, который разбирается во всём, что нужно, надеюсь, он поможет с установкой.
|
Да, нужен админ. Главное чтобы он установил ffmpeg посвежее и с поддержкой libx264. Честно скажу: без идей как именно это делать, на это есть админ.
sweetypie писал: |
1. "-y - перезаписывать если файл с результаттом уже есть". Результат с тем же расширением? Это оригинал (с другим расшерением) не сотрёт?
|
полное вхождение конечного файла с расширением указывается в команде к ffmpeg - он и перезапишется
sweetypie писал: |
2. "для видео используем кодек libx264, который вроде как должен читаться всеми мобилками современными".
Он включен в саму ffmpeg программу, или подгружается отдельно?
|
смотри первый ответ, еще нужно чтобы была поддержка faststart у сборки (поэтому надо поновее версию ставить)
sweetypie писал: |
3.
Похоже, Вы очень важную вещь написали, но, я не до конца понял. На моих сайтах обычный CcBill логин через Strongbox, внутри Members директории выложены линки к файлам, находящимся в соседнем фолдере, и, собственно, всё.
На ролловер мауса я вижу http://sbxeCode.site.com/Members/videos/title.mp4, что больше напоминает вашу первую, не работающую версию.
|
Со стронгбоксом будет и так работать, напрямую. Главное чтобы файл был правильно пережат под libx264.
sweetypie писал: |
Для чего именно стоят "?passcode=sha1_hash_here" в Вашем втором примере, пожалуйста, объясните. Только, если можно, попроще, я в этом не очень разбираюсь. |
Это когда файл лежит не за стронгбоксом, а, например, в открытом доступе. Чтобы все подряд не могли качать и смотреть - ставится отдельное правило на сервере что файлы с расширением таким-то не отдавать ни в коем случае по прямой линке. А если к ним приходит запрос file.ext?passcode=*** - проверять то что в passcode на валидность и тогда уже показывать.
PS: что за платник, если не секрет? можно в личку
|
|
|
|
С нами с 30.10.12
Сообщения: 3123
Рейтинг: 2541
|
Добавлено: 12/12/15 в 04:34 |
Вот так я собираю ffmpeg на ubuntu со всеми плюшками и кодеками
Код: [развернуть] |
echo "deb http://www.deb-multimedia.org wheezy main non-free" >> /etc/apt/sources.list
echo "deb-src http://www.deb-multimedia.org wheezy main non-free" >> /etc/apt/sources.list
apt-get update
apt-get install deb-multimedia-keyring
apt-get update
export TMPDIR=$HOME/tmp
cd /usr/local/src
apt-get install -y libfaad-dev faad faac libfaac0 libfaac-dev libmp3lame-dev x264 libx264-dev libxvidcore-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libvorbis-dev libx11-dev libxfixes-dev zlib1g-dev speex libspeex-dev build-essential checkinstall git-core texi2html
apt-get build-dep ffmpeg
apt-get source ffmpeg
cd ffmpeg-*
./configure --enable-gpl --enable-nonfree --enable-libfaac --enable-libgsm --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-zlib --enable-postproc --enable-swscale --enable-pthreads --enable-x11grab --enable-libdc1394 --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libspeex
mkdir -p /usr/local/share/ffmpeg
checkinstall -D --install=no --pkgname=ffmpeg-full --autodoinst=yes -y
dpkg -i ffmpeg-full_1.0.10-1_amd64.deb
make tools/qt-faststart
checkinstall --pkgname=qt-faststart --pkgversion="$(./version.sh)" --backup=no --deldoc=yes --default install -Dm755 tools/qt-faststart /usr/local/bin/qt-faststart
|
|
|
|
|
С нами с 17.11.15
Сообщения: 76
Рейтинг: -9
|
Добавлено: 15/12/15 в 18:54 |
Ffmpeg не требует видео карты установленной на сервере, он будет работать и без неё, правильно?
|
|
|
|
С нами с 30.10.12
Сообщения: 3123
Рейтинг: 2541
|
Добавлено: 15/12/15 в 20:46 |
|
|
|
|
С нами с 17.11.15
Сообщения: 76
Рейтинг: -9
|
Добавлено: 16/12/15 в 00:19 |
Какая версия лучше: командная или РНР?
|
|
|
|
programmer
С нами с 08.12.02
Сообщения: 7614
Рейтинг: 5760
|
Добавлено: 16/12/15 в 00:32 |
ffmpeg-php
старое и неподдерживаемое УГ
спросите конфиг актуальной сборки
|
|
|
|
С нами с 17.11.15
Сообщения: 76
Рейтинг: -9
|
Добавлено: 22/12/15 в 15:02 |
Установили мне ffmpeg на сервере, а, теперь как им управлять, куда эти команды вводить?
|
|
|
|
С нами с 31.10.03
Сообщения: 730
Рейтинг: 336
|
Добавлено: 22/12/15 в 15:29 |
|
|
|
|
С нами с 17.11.15
Сообщения: 76
Рейтинг: -9
|
Добавлено: 25/12/15 в 02:16 |
MilkSucker писал: | Команда под unix:
nice /usr/local/bin/ffmpeg -y -i "_path_to_input_file_" -acodec libfaac -b:a 160k -s 1920x1080 -vcodec libx264 -movflags faststart -profile:v baseline -pix_fmt yuv420p -level:v 30 -crf 18 -vf "transpose=1" -metadata rotate=0 -threads 1 "_path_to_output_file_" :
Грубое описание:
nice - запускаем утилиту ffpmeg так чтобы она не жрала все ресурсы сервера
/usr/local/bin/ffmpeg - путь к утилите
-y - перезаписывать если файл с результаттом уже есть
-i "_path_to_input_file_" - так задается путь к исходному
-acodec libfaac -b:a 160k - настройки аудио: используем кодек libfaac, аудиобитрейт 160к
-s 1920x1080 - изменяем размер видео до 1920х1080 (HD)
-vcodec libx264 - для видео используем кодек libx264, который вроде как должен читаться всеми мобилками современными
-movflags faststart - переписываем хедеры в начало файла, чтобы запускалось сразу, без буфферицации полностью файла в кэш браузера (по идее, чтобы работала перемотка, надо еще настроить на сервере отдачу контента правильно)
Дальше сложнее, сам не очень в командах ффмпега, настройки для видео:
-profile:v baseline - видимо профиль для формата h.264, как раз чтобы подо все играло
-pix_fmt yuv420p - туда же настройки, чтобы под apple quichtime играло (https://trac.ffmpeg.org/wiki/Encode/H.264#iOS)
-level:v 30 - туда же, видимо, уровень сжатия по профилю baseline
-crf 18 - Constant Rate Factor, степень сжатия как раз
-vf "transpose=1" - так понимаю, поворачиваем вертикальное видео в горизонтальное (не уверен, возможно и без этого будет работать?)
-metadata - вырезаем все метаданные из файла (автор, кто когда и где создал)
rotate=0 - выравниваем к горизонтальному видео (не уверен, возможно и без этого будет работать?)
-threads 1 - сколько потоков ffmpeg запускать (насколько сильно грузить сервер)
"_path_to_output_file_" - куда писать результат
То же самое, но без HD:
nice /usr/local/bin/ffmpeg -y -i "_input_" -acodec libfaac -b:a 160k -s 640x360 -vcodec libx264 -movflags faststart -profile:v baseline -pix_fmt yuv420p -level:v 30 -crf 18 -vf "transpose=1" -metadata rotate=0 -threads 1 "_output_" |
Мне наконец установили ffmpeg, но, кое что работает немного иначе:
когда я сказал, что нужен пат к программе, они ответили, что не нужен, и в их версии это просто "nice ffmpeg -i", и именно так работает, не знаю достаточно ли этого, чтобы делать всё что надо, но, рендерит.
Читая Ваше описание комманд, самой интересной показалась " -movflags faststart - переписываем хедеры в начало файла, чтобы запускалось сразу, без буфферицации полностью файла в кэш браузера", но, когда я её добавляю, Патти пишет так:
"[mp4 muxer @ 0x18d71c0] [Eval @ 0x7ffc934da8c0] Undefined constant or missing '(' in 'faststart'
[mp4 muxer @ 0x18d71c0] Unable to parse option value "faststart"
[mp4 muxer @ 0x18d71c0] Error setting option movflags to value faststart."
а, через несколько строчек так:
"Could not write header for output file #0 (incorrect codec parameters ?)"
Почему эта важная команда не принимается, как Вы думаете?
|
|
|
|
С нами с 31.10.03
Сообщения: 730
Рейтинг: 336
|
Добавлено: 25/12/15 в 05:45 |
sweetypie писал: |
когда я сказал, что нужен пат к программе, они ответили, что не нужен, и в их версии это просто "nice ffmpeg -i", и именно так работает, не знаю достаточно ли этого, чтобы делать всё что надо, но, рендерит.
|
да, это алиас. типа ярлык для вызова приложения. в любом случае, можно набрать which ffmpeg и он покажет полный путь.
sweetypie писал: |
Читая Ваше описание комманд, самой интересной показалась " -movflags faststart - переписываем хедеры в начало файла, чтобы запускалось сразу, без буфферицации полностью файла в кэш браузера", но, когда я её добавляю, Патти пишет так:
"[mp4 muxer @ 0x18d71c0] [Eval @ 0x7ffc934da8c0] Undefined constant or missing '(' in 'faststart'
[mp4 muxer @ 0x18d71c0] Unable to parse option value "faststart"
[mp4 muxer @ 0x18d71c0] Error setting option movflags to value faststart."
а, через несколько строчек так:
|
видимо сборка или не полная, или старая, без поддержки faststart. Варианта два: просить поставить так чтобы была поддержка -movflags и faststart.
Или убирать эту часть из команды, писать в файл video_tmp.mp4 , а потом запускать так:
qt-faststart video_tmp.mp4 video_result.mp4
Но надо чтобы утилита qt-faststart тоже стояла на сервере, иначе не сработает. временный потом можно удалить, правильный (с хедерами в начале файла) будет в video_result.mp4
|
|
|
|
С нами с 17.11.15
Сообщения: 76
Рейтинг: -9
|
Добавлено: 27/12/15 в 18:50 |
MilkSucker писал: | да, это алиас. типа ярлык для вызова приложения. в любом случае, можно набрать which ffmpeg и он покажет полный путь.
видимо сборка или не полная, или старая, без поддержки faststart. Варианта два: просить поставить так чтобы была поддержка -movflags и faststart.
Или убирать эту часть из команды, писать в файл video_tmp.mp4 , а потом запускать так:
qt-faststart video_tmp.mp4 video_result.mp4
Но надо чтобы утилита qt-faststart тоже стояла на сервере, иначе не сработает. временный потом можно удалить, правильный (с хедерами в начале файла) будет в video_result.mp4 |
MilkSucker, cпасибо за Ваш ответ.
После Рождества эти ребята из Кэйвкрик не спешат с ответами, уже 3 дня жду))
А, пока хочу спросить: сейчас мои самплы ререндеренные явно играют до полного даунлоада в кэш, но, задерживаются с перемещением точки просмотра до 12 секунд, а, у тюбов это происходит почти мгновенно. Вы думаете, что movflags и faststart это то, что улучшит скорость навигации, даже, если и сейчас сеттинги на сервере позволяют перемещаться вдоль видео до полной загрузки, или всё таки эти сеттинги сервера как то "подкрутить" тоже, или добавить какую то утилиту в сервер?
|
|
|
|
С нами с 31.10.03
Сообщения: 730
Рейтинг: 336
|
Добавлено: 28/12/15 в 03:32 |
Да, надо настраивать на сервере отдачу файлов с "промоткой", иначе все-равно чтобы мотать придется выкачать сначала весь файл в кэш.
Админ тебе нужен грамотный, в общем И доступ на сервер человеческий (root) чтобы выдать админу.
|
|
|
|
С нами с 17.11.15
Сообщения: 76
Рейтинг: -9
|
Добавлено: 28/12/15 в 03:47 |
spasibo za otvet, MilkSucker
Последний раз редактировалось: sweetypie (28/12/15 в 03:50), всего редактировалось 2 раз(а)
|
|
|
|
С нами с 17.11.15
Сообщения: 76
Рейтинг: -9
|
Добавлено: 28/12/15 в 03:48 |
MilkSucker писал: | Да, надо настраивать на сервере отдачу файлов с "промоткой", иначе все-равно чтобы мотать придется выкачать сначала весь файл в кэш.
Админ тебе нужен грамотный, в общем И доступ на сервер человеческий (root) чтобы выдать админу. |
Ну, они там, вроде, мастера на CcBill, по крайней мере парочка из них, делали удивительные вещи с перекорёженным Стронгбоксом (с самой Али у меня уже несколько лет не ладилось )
Они сами эти сервера там собирают и дают пароли, так что у них есть доступ куда угодно.
За 12 секунд весь файл не зальётся в кэш, а, примерно, столько требуется, чтобы продолжить просмотр с любого места. Значит, промотка у меня есть, правильно? Но, почему то медленнее работающая, чем в тюбах. Что может её ускорить?
|
|
|
|
С нами с 30.10.12
Сообщения: 3123
Рейтинг: 2541
|
Добавлено: 28/12/15 в 04:34 |
Крупные тьюбы вообще то используют CDN - content delivery system ,поэтому навигация по файлу быстрая,но это совсем другой уровень
|
|
|
|
С нами с 17.11.15
Сообщения: 76
Рейтинг: -9
|
Добавлено: 28/12/15 в 20:51 |
Securom, спасибо за Ваш ответ.
Вы точно знаете, что хвидеос и хаб используют CDN, а, не хранят контент в одном месте?
|
|
|
|
С нами с 25.08.08
Сообщения: 18751
Рейтинг: 1251
|
Добавлено: 28/12/15 в 22:02 |
sweetypie писал: | Securom, спасибо за Ваш ответ.
Вы точно знаете, что хвидеос и хаб используют CDN, а, не хранят контент в одном месте? |
даже не сумлевайся
|
|
|
|
С нами с 30.10.12
Сообщения: 3123
Рейтинг: 2541
|
Добавлено: 28/12/15 в 22:42 |
Топикстартера даже потроллить нельзя,он как будто с другой планеты с такими вопросами
CDN достаточно дорогое решение,я вот как нищеброд соорудил из трех гигабитных серверов типа своего CDNа и раздаю с них контент и как толпа налетает то пиздец у меня серваки напрягаются и тормозят в плане перемотки видео.
|
|
|
|
С нами с 17.11.15
Сообщения: 76
Рейтинг: -9
|
Добавлено: 28/12/15 в 23:04 |
spasibo
Последний раз редактировалось: sweetypie (28/12/15 в 23:06), всего редактировалось 1 раз
|
|
|
|
С нами с 17.11.15
Сообщения: 76
Рейтинг: -9
|
Добавлено: 28/12/15 в 23:05 |
Securom писал: | Топикстартера даже потроллить нельзя,он как будто с другой планеты с такими вопросами
CDN достаточно дорогое решение,я вот как нищеброд соорудил из трех гигабитных серверов типа своего CDNа и раздаю с них контент и как толпа налетает то пиздец у меня серваки напрягаются и тормозят в плане перемотки видео. |
А, по каким странам (или штатам) вы их расставили?
|
|
|
|
С нами с 30.10.12
Сообщения: 3123
Рейтинг: 2541
|
Добавлено: 29/12/15 в 06:36 |
Ни по каким,все видосы по очереди раздаются с каждого сервака,вот и все распределение нагрузки
|
|
|
|
С нами с 17.11.15
Сообщения: 76
Рейтинг: -9
|
Добавлено: 29/12/15 в 07:08 |
Тогда, это же не совсем CDN концепция, Вы, просто, усиливаете свой сервер, а, не "разбрасываете" его ближе к потребителю?
У меня, к сожалению нет такого ажиотажа, у меня, вообще, лимит 60т, который я и близко не раздаю.
У Вас тюб?
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |
|
Спонсор раздела
|