Вы видите копию треда, сохраненную 8 ноября 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Основным обсуждаемым здесь инструментом является ffmpeg. Пердолики с мокрописечными гуями вроде xmedia recode и прочие клепальщики распидорашенного кривопиксельного говна из порнотреда со своими воплями о ненужности консоли не нужны сами — пусть сначала научатся делать качественные вебмки, а потом уже лезут сюда с советами.
Делать WebM можно научиться в вики треда: https://github.com/pituz/webm-thread/wiki/
Там находится подробная информация о выборе и настройке кодеков на примерах использования консольных утилит ffmpeg, vpxenc и mkvmerge.
Если для кого-то это слишком сложно, то можно взять гуй с минимумом кнопок для умственно отсталых (сперма-only): https://gitgud.io/nixx/WebMConverter
О кодировании WebM для сосача:
— доступные кодеки — VP8 и VP9 для видео, Vorbis и Opus для звука;
— максимальный размер файла: 20480КБ в /b/ и /media/, 6144КБ в тематике, всех файлов в посте — около 22МБ.
Неочевидные моменты:
— начиная с версии 2.8 ffmpeg использует для WebM по умолчанию VP9 и Opus;
— libvorbis при указании битрейта (-b:a) работает в режиме CBR (постоянный битрейт), и это портит качество звука; для режима VBR вместо битрейта надо указывать качество (-q:a); параметр -vbr on работает только для Opus'а;
— в webm'ки не нужно включать софтсаб в формате webvtt (FFmpeg это делает по умолчанию при наличии сабов в контейнере, отключается параметром -sn): во-первых, это бесполезно (для его отображения на странице должен быть специальный код), а во-вторых, от этого ролики не воспроизводятся в firefox;
— ролики с opus'ом в firefox зацикливаются не с начала, а с последнего ключевого кадра.
Программы и их документация
http://webmproject.org http://ffmpeg.org http://mpv.io http://www.bunkus.org/videotools/mkvtoolnix/
Фронтенды к ffmpeg для кодирования вебмок
CLI, бидон: https://pypi.python.org/pypi/webm
CLI, zsh: https://github.com/pituz/webm-thread/tree/master/tools
CLI, дотнет: https://github.com/CherryPerry/ffmpeg-vp9-wrap
Проиграл с этих пердолегайдов. Это блять не рокет саенс, это ебаные вебмки! Скачать любой конвертер там за пару сек можно всё обрезать, изменить разрешение. Всё с человеческим гуи. Нахуя это?
Это для того, чтобы делать красиво.
Через гуй всегда получается большой размер при низком качестве, нормальных гуев пока не завезли.
> Пердолики с мокрописечными гуями вроде xmedia recode и прочие клепальщики распидорашенного кривопиксельного говна из порнотреда со своими воплями о ненужности консоли не нужны сами — пусть сначала научатся делать качественные вебмки, а потом уже лезут сюда с советами.
Но консоль это совсем не страшно, особенно если это помершеллчик.
Последние строки оп-поста.
О, спасибо, а я в поиске не смог найти.
Кстати, насчёт оп-пасты: VP9 и 12 бит поддерживает, -pix_fmt +yuvXXXp12le. Немного помогает от бандинга на градиентах, но не так хорошо как отдельный дизеринг-фильтр. Первая картинка — 8 бит, вторая — 12, третья — дизеринг 8 бит.
А я вот не понимаю, откуда такая боязнь CLI? Что это за панические фобии? Специалисты будут использовать те инструменты, которые обеспечивают максимально низкоуровневый доступ к процессу. И субъективное удобство в глазах обывателя стоит здесь далеко не на первом месте. Просто так сложилось, что консольные утилиты в основном лучше справляются с требованием предоставить минимальный набор абстракций при выполнении поставленой задачи. Но это вовсе не обязательно. Например, в случае различного рода анализаторов, визуализаторов. Никому и в голову не придёт использовать какое-нибудь подобие программы на ncurses для просмотра сведений о супрблоках/макроблоках/векторов движения/факторов квантования и прочего в видео — есть отличные GUI. Или интерактивное редактирование.
Абстракция — это то, что снижает уверенность в результате с каждым новый её слоем. Не бывает идеальных абстракций. Ты вот знаешь какое в твоей гуёвине (которые в большинстве своём всего лишь обёртки над ffmpeg) используется используется цветовое пространство при конвертировании из RGB в Y'CbCr? Full range или limited? Знаешь как повысить битность потока, чтобы уменьшить бандинг, да так, чтобы это действие произошло до преобразования цветового пространства, дабы не получить нехилые потери? Или можешь преобразовать картинку в y4m специализированной программой, размножить её на уровне демуксера, т.к. та программа таким не занимается и скормить на вход конвертеру? Можешь поставить тэг используемого цветового пространства в VPX фреймах? Здесь отдельные утилиты-то, написанные как раз для этих целей, далеко не всегда справляются, а ты в однокнопочной гуёвине хочешь всё задаром. А между тем задача вроде как простая стояла — сделать WebM с картинкой и музыкой, чтобы цвета не поехали.
В случае каких-нибудь неясностей, ошибок, ты землю грызть будешь, чтобы добраться до причины (разумеется, если тебе важен результат). И наличие лишних неизвестностей вроде closed-source GUI обёртки это то, что будет выкинуто в первую же очередь. Ты даже не подозреваешь, до чего всё плохо бывает. Хоть в asm зарывайся, хоть RFC по сто раз перечитывай, хоть в магазин за калибратором беги — какая-то хуйня и всё тут. И в гугле ничего, и программы хоть бесплатные, хоть платные, всё неправильно делают. Вот тебе неплохой пример подобного, касательно цветовых пространств и гуёвин: https://github.com/mpv-player/mpv/issues/534
Разумеется, ты сейчас про себя подумал «Нафиг это надо? Мне только смешной момент вырезать из кинчика и с пацанами под пивко поугарать». Ну так тред и не для тебя, проходи мимо. Возможно, вембрелейтед натолкнёт тебя на какие-нибудь размышления.
А я вот не понимаю, откуда такая боязнь CLI? Что это за панические фобии? Специалисты будут использовать те инструменты, которые обеспечивают максимально низкоуровневый доступ к процессу. И субъективное удобство в глазах обывателя стоит здесь далеко не на первом месте. Просто так сложилось, что консольные утилиты в основном лучше справляются с требованием предоставить минимальный набор абстракций при выполнении поставленой задачи. Но это вовсе не обязательно. Например, в случае различного рода анализаторов, визуализаторов. Никому и в голову не придёт использовать какое-нибудь подобие программы на ncurses для просмотра сведений о супрблоках/макроблоках/векторов движения/факторов квантования и прочего в видео — есть отличные GUI. Или интерактивное редактирование.
Абстракция — это то, что снижает уверенность в результате с каждым новый её слоем. Не бывает идеальных абстракций. Ты вот знаешь какое в твоей гуёвине (которые в большинстве своём всего лишь обёртки над ffmpeg) используется используется цветовое пространство при конвертировании из RGB в Y'CbCr? Full range или limited? Знаешь как повысить битность потока, чтобы уменьшить бандинг, да так, чтобы это действие произошло до преобразования цветового пространства, дабы не получить нехилые потери? Или можешь преобразовать картинку в y4m специализированной программой, размножить её на уровне демуксера, т.к. та программа таким не занимается и скормить на вход конвертеру? Можешь поставить тэг используемого цветового пространства в VPX фреймах? Здесь отдельные утилиты-то, написанные как раз для этих целей, далеко не всегда справляются, а ты в однокнопочной гуёвине хочешь всё задаром. А между тем задача вроде как простая стояла — сделать WebM с картинкой и музыкой, чтобы цвета не поехали.
В случае каких-нибудь неясностей, ошибок, ты землю грызть будешь, чтобы добраться до причины (разумеется, если тебе важен результат). И наличие лишних неизвестностей вроде closed-source GUI обёртки это то, что будет выкинуто в первую же очередь. Ты даже не подозреваешь, до чего всё плохо бывает. Хоть в asm зарывайся, хоть RFC по сто раз перечитывай, хоть в магазин за калибратором беги — какая-то хуйня и всё тут. И в гугле ничего, и программы хоть бесплатные, хоть платные, всё неправильно делают. Вот тебе неплохой пример подобного, касательно цветовых пространств и гуёвин: https://github.com/mpv-player/mpv/issues/534
Разумеется, ты сейчас про себя подумал «Нафиг это надо? Мне только смешной момент вырезать из кинчика и с пацанами под пивко поугарать». Ну так тред и не для тебя, проходи мимо. Возможно, вембрелейтед натолкнёт тебя на какие-нибудь размышления.
>Специалисты будут использовать те инструменты, которые обеспечивают максимально низкоуровневый доступ к процессу.
Ебать дебил.
Я ж написал, в случае надобности. Да, будешь и исходники читать, и в хекс-редакторе сидеть, и не только.
Я ваш гайд немного посмотрел. Там рекомендуется вручную битрейт рассчитывать (!). Вы же понимаете, что вы полностью поехавшие наркоманы-пердолики с карго-культом низкоуровневости? Все, что может быть автоматизировано - должно быть автоматизировано.
Про такие мелочи никто и не говорит. В оп-посте есть ссылки на обёртки, которые всё это делают (и от которых иногда приходится отказываться). Гайды обучают ffmpeg'у, базовому инструменту, в этом их ценность.
>и от которых иногда приходится отказываться
Так надо дорабатывать обертки до юзабельного в 99.9% случаев состояния, а не сидеть и пердолиться, кичась тем, что зазубрил зачем-то все ключи ffmpeg.
Попробуй серию SP в гуевине или на скриптиках с авторасчетом битрейта в 10МБ ужать без тотальных квадратов.
Для подобных фокусов и нужно небольшое понимание ффмпега.
А сложного там ничего нет, в чем надо было бы долго разбираться, если владеть английским хотя бы на уровне 5 класса общеобразовательной школы.
http://rghost.ru/8dzDksvLG
>Так надо дорабатывать обертки до юзабельного в 99.9% случаев состояния
Ну, значит ты ничего не понял из того, что я написал. Я даже вебм специально прикрепил.
То есть ты сидишь и подбираешь все руками, пока не ужмешь именно в 10 МБ? И сколько времени у тебя это занимает для одной вебмки? Интересна целесообразность подобного.
Да, я подбираю все руками.
Один раз посчитать в калькуляторе сколько будет занимать видео и оставить необходимое место под звук до лимита, потом просто добавлять звук с максимальным качеством таким, чтобы он влез в лимит.
Сама подгонка звука занимает совсем немного, он кодируется очень быстро, занимает много времени кодирование видео с хорошим соотношением размер/качество, но это уже от процессора непосредственно зависит.
> при конвертировании из RGB в Y'CbCr? Full range или limited?
Вот. Реквестирую инфу о подводных камнях с этим делом при использовании ффмпега. С дефолтами выходит какая-то хуйня:
1. yuv420p10le (H.264) → rgb48be (png);
2. yuv420p10le (H.264) → yuv420p (vp9) → rgb24 (png);
3. yuv420p10le (H.264) → yuv420p10le (vp9) → rgb48be (png).
Оно уже обсуждалось в прошлом треде, но то ли я проебался, то ли готовой инструкции нами сгенерировано не было.
Нет, я понял бы, если бы для какого-нибудь блю-рей рипа (хотя у крупных релизеров и они наверно поставлены на поток), но для одной вебмки? Не надоедает, автоматизировать не хочется?
> Не надоедает, автоматизировать не хочется?
Нет, мне важнее качественно сделать, чем автоматизировать.
А так у меня наработки в текстовом файле есть, я обычно только битрейт, начало-конец и многопоточность меняю, ничего сложного.
Вот, кстати, под новый лимит 4К кодировал, когда ввели, но в последнее время в /b заходить даже лень, поэтому не кодирую особо, только для освящения вин10-треда иногда.
http://rghost.ru/7pDC7jzGT
А какая задача-то? Если сконвертировать PNG в WebM, то подводные камни, которые я наблюдал:
1) Любое преобразование между RGB и Y'CbCr, цветовыми пространствами (BT.601 → BT.709), в любом направлении, происходит с потерями. Поэтому их должно быть минимальное количество.
2) Не забыть, что преобразование 4:4:4 в 4:2:0 теряет ¾ цветовой информации.
3) У ffmpeg дефолтное цветовое пространство при преобразовании RGB в YUV — BT.601. Изменить можно с помощью -vf scale=out_color_matrix=bt709 (положение внутри графа фильтров важно).
4) В VP8 используется только цветовое пространство BT.601, VP9 позволяет указывать произвольное, но в ffmpeg нет такого функционала, можно только с помощью опции в vpxenc -color-space поставить: ffmpeg -i test.png -pix_fmt yuv444p -f yuv4mpegpipe - | vpxenc - --codec=vp9 --passes=1 --pass=1 --profile=1 --lossless=1 --color-space=bt601 -o test.webm
5) Соответственно, при кодировании ffmpeg'ом VP9, у VPX кадров в поле vpx_color_t значение VPX_CS_UNKNOWN и плеерам приходится угадывать цветовое пространство.
6) В mpv для определения цветового пространства используется следующая эвристика: BT.601 для SD, BT.709 для HD (>= 1279x719). Поменять можно с помощью -vf format=colormatrix=bt.xxx Т.е. при кодировании HD PNG ffmpeg'ом (у которого всегда BT.601) и просмотра результата mpv ожидаемо поедут цвета. Нужно использовать фильтр scale, либо внедрить информации о цветовом пространстве во фреймы.
7) Самый популярный формат видео — Y'CbCr 4:2:0 limited range. full range вроде почти никогда не бывает, нужно limited (т.е. значения компонент между 16 и 235/240). Это вроде все по умолчанию используют, только в кривой ffplay видел full range по умолчанию, здесь проблем быть не должно. С дискретизацией 4:2:0 всё просто.
8) -pix_fmt в мане описана, ничего сложного. Единственное что лучше использовать плюсик перед значением, чтобы не было fallback на дефолт. И многобитные форматы, как правило, всегда LE, например yuv420p10le. Впрочем, всё что кроме yuv420p 8bit, плохо поддерживается плеерами/браузерами, особенно чуть устаревших версий. Про профили VP9: https://chromium.googlesource.com/webm/libvpx/+/master/vp9/common/vp9_enums.h#29 2-ой и 3-й профили могут быть не включены по умолчанию в используемый сборке libvpx, там отдельный флаг для этого при компиляции.
9) ffmpeg не делает dithering при преобразовании RGB в YUV (Y'CbCr по-простому), поэтому ожидаем бандинг на градиентах. Результат можно немного улучшить при использовании 12бит и даунсемплинга: -vf scale=out_color_matrix=bt709,format=yuv444p12le и -vf format=rgb48le,scale=out_color_matrix=bt709,format=yuv444p (даунсэмплинг 12бит RGB в 8бит YUV).
10) png2y4m из утилит Daala https://git.xiph.org/?p=daala.git;a=blob;f=tools/png2y4m.c;h=fe0979db826fea42f9b6a9cd2dca3ad85c04d3cf;hb=HEAD умеет dithering (только 8bit и не забыть --chroma-444 опцию, если нужно без потерь), но результат будет весить гораздо больше из-за шума. 12бит может быть более оправданным при маленьких лимитах.
11) В прошлом треде была некоторая полезная информация касательно утилит для визуализации графа фильтров ffmpeg и логгинга конвертаций цветовых форматов при -loglevel verbose: http://arhivach.org/thread/100617/#1253983 (но про цветовые пространства там лучше не читать, много ошибок).
12) Печальный факт: большая часть программ работает с цветовыми пространствами неправильно. Надо знать теорию, а её никто не читает. Поэтому ожидаемо огромное количество багов всех сортов при попытке сделать что-нибудь pixel accurate.
В гайд лень оформлять, да и я сам пока особо цветовые пространства не осилил. Вот только неплохую ссылку знаю на теорию:
http://ninedegreesbelow.com/photography/articles.html
>>1397089
Ну да, всё так просто, а все качают рипы THORA и прочих известных релизеров почему-то.
А какая задача-то? Если сконвертировать PNG в WebM, то подводные камни, которые я наблюдал:
1) Любое преобразование между RGB и Y'CbCr, цветовыми пространствами (BT.601 → BT.709), в любом направлении, происходит с потерями. Поэтому их должно быть минимальное количество.
2) Не забыть, что преобразование 4:4:4 в 4:2:0 теряет ¾ цветовой информации.
3) У ffmpeg дефолтное цветовое пространство при преобразовании RGB в YUV — BT.601. Изменить можно с помощью -vf scale=out_color_matrix=bt709 (положение внутри графа фильтров важно).
4) В VP8 используется только цветовое пространство BT.601, VP9 позволяет указывать произвольное, но в ffmpeg нет такого функционала, можно только с помощью опции в vpxenc -color-space поставить: ffmpeg -i test.png -pix_fmt yuv444p -f yuv4mpegpipe - | vpxenc - --codec=vp9 --passes=1 --pass=1 --profile=1 --lossless=1 --color-space=bt601 -o test.webm
5) Соответственно, при кодировании ffmpeg'ом VP9, у VPX кадров в поле vpx_color_t значение VPX_CS_UNKNOWN и плеерам приходится угадывать цветовое пространство.
6) В mpv для определения цветового пространства используется следующая эвристика: BT.601 для SD, BT.709 для HD (>= 1279x719). Поменять можно с помощью -vf format=colormatrix=bt.xxx Т.е. при кодировании HD PNG ffmpeg'ом (у которого всегда BT.601) и просмотра результата mpv ожидаемо поедут цвета. Нужно использовать фильтр scale, либо внедрить информации о цветовом пространстве во фреймы.
7) Самый популярный формат видео — Y'CbCr 4:2:0 limited range. full range вроде почти никогда не бывает, нужно limited (т.е. значения компонент между 16 и 235/240). Это вроде все по умолчанию используют, только в кривой ffplay видел full range по умолчанию, здесь проблем быть не должно. С дискретизацией 4:2:0 всё просто.
8) -pix_fmt в мане описана, ничего сложного. Единственное что лучше использовать плюсик перед значением, чтобы не было fallback на дефолт. И многобитные форматы, как правило, всегда LE, например yuv420p10le. Впрочем, всё что кроме yuv420p 8bit, плохо поддерживается плеерами/браузерами, особенно чуть устаревших версий. Про профили VP9: https://chromium.googlesource.com/webm/libvpx/+/master/vp9/common/vp9_enums.h#29 2-ой и 3-й профили могут быть не включены по умолчанию в используемый сборке libvpx, там отдельный флаг для этого при компиляции.
9) ffmpeg не делает dithering при преобразовании RGB в YUV (Y'CbCr по-простому), поэтому ожидаем бандинг на градиентах. Результат можно немного улучшить при использовании 12бит и даунсемплинга: -vf scale=out_color_matrix=bt709,format=yuv444p12le и -vf format=rgb48le,scale=out_color_matrix=bt709,format=yuv444p (даунсэмплинг 12бит RGB в 8бит YUV).
10) png2y4m из утилит Daala https://git.xiph.org/?p=daala.git;a=blob;f=tools/png2y4m.c;h=fe0979db826fea42f9b6a9cd2dca3ad85c04d3cf;hb=HEAD умеет dithering (только 8bit и не забыть --chroma-444 опцию, если нужно без потерь), но результат будет весить гораздо больше из-за шума. 12бит может быть более оправданным при маленьких лимитах.
11) В прошлом треде была некоторая полезная информация касательно утилит для визуализации графа фильтров ffmpeg и логгинга конвертаций цветовых форматов при -loglevel verbose: http://arhivach.org/thread/100617/#1253983 (но про цветовые пространства там лучше не читать, много ошибок).
12) Печальный факт: большая часть программ работает с цветовыми пространствами неправильно. Надо знать теорию, а её никто не читает. Поэтому ожидаемо огромное количество багов всех сортов при попытке сделать что-нибудь pixel accurate.
В гайд лень оформлять, да и я сам пока особо цветовые пространства не осилил. Вот только неплохую ссылку знаю на теорию:
http://ninedegreesbelow.com/photography/articles.html
>>1397089
Ну да, всё так просто, а все качают рипы THORA и прочих известных релизеров почему-то.
Забыл добавить. В JPEG Y'CbCr формат с нестандартным цветовым пространством (не 601/709), да ещё и full range, так что здесь может быть куча дополнительных камней. Меня от одного PNG с его sRGB, гаммами, хер знает как работающими просмотрщиками и перекодировщиками уже тошнить тянет. А ещё говорят без потерь. Как в compare orig.png result.png -compose src diff.png посмотришь, так плакать хочется.
> А какая задача-то?
В случае с пикрелэйтедами выше — как можно меньше потерять при конвертации из H.264 в VP9, а потом результат сконвертировать в RGB подобно тому, как это делают видеокарты, и сохранить в PNG. Нужно это было для оценки полезности применения VP9 c глубиной цвета 10 бит.
За инфу спасибо, открыл для себя много нового.
>как можно меньше потерять при конвертации из H.264 в VP9, а потом результат сконвертировать в RGB подобно тому, как это делают видеокарты, и сохранить в PNG
1) Использовать ту же цветовую субдискретизацию, что и на входе (или выше), 4:2:0 в твоём случае.
2) Использовать ту же битность, 10bit LE в твоём случае.
3) Использовать -lossless 1 опцию libvpx-vp9.
4) Открыть файл в mpv с opengl выводом и сделать png скриншот (использовать --screenshot-high-bit-depth=yes).
5) Сделать тем же mpv скриншот исходного файла, сравнить с результатом через compare orig.png result.png -depth 16 -compose src diff.png (16-битный diff не проверял у ImageMagick, правда).
Потерь теоретически быть не должно, т.к. у тебя YUV исходник и это должны быть две одинаковых конвертации 4:2:0 10bit LE → RGB 16bit при сравнении скриншотов H.264 и VP9. Но по факту lossless у VP9 может быть не таким уж и lossless из-за потерять на плавающей точке и прочей гадости. Так что тестируй, проверяй, прикладывай оригиналы/промежуточные результаты. В качестве проверки адекватности пайплайна перекодируй исходный H.264 в y4m (rawvideo) с той же битностью/дискретизацией и с него также сними скриншот.
Вообще, я при тестирование high bit-depth использовал обычные 8-битные PNG как на входе, так и на выходе. Там такой бандинг, что и невооружённым глазом всё отлично заметно.
>--screenshot-high-bit-depth=yes
О, ничего себе, это дефолт оказывается. Я таки 16-битные скриншоты значит использовал/сравнивал. Одна из возможных причин погрешностей, кстати — сравниваемые файлы должны быть максимально схожих форматов.
> 3) Использовать -lossless 1 опцию libvpx-vp9.
Не, задача была в сравнении сжатия с потерями с тем же средним битрейтом.
> 4) Открыть файл в mpv с opengl выводом и сделать png скриншот (использовать --screenshot-high-bit-depth=yes).
Этого тоже не нужно, т.к. мало кто использует 10-битный видеорежим. Конкретный use-case — сжатие анимы из yuv420p или yuv420p10le для отображения через rgb24. Пока что очевидных преимуществ использования десятибитного формата вместо восьмибитного не обнаружено — артефактов получается примерно столько же, только они возникают в других местах. Ну и чуть глаже выглядят градиенты.
>Не, задача была в сравнении сжатия с потерями с тем же средним битрейтом
Ну тогда здесь по идее никаких особых проблем быть не должно, обычное перекодирование и сравнение по скриншотам. Битность исходника даже не важна. Я думал нужно проверить чистое отличие 10бит от 8бит, по максимуму сохраняя остальные детали («как можно меньше потерять при конвертации из H.264 в VP9»).
>Пока что очевидных преимуществ использования десятибитного формата вместо восьмибитного не обнаружено
Ну на градиентах по мне так очевидное преимущество → >>1396756 Впрочем, я тестировал очень специфичный use-case (преобразование PNG в WebM), да и 8bit dithering не хуже результат даёт. Обычное перекодирование градиентов из yuv420p не пробовал.
Кстати, говорят что в VP10 будет 12бит по умолчанию и что это таки сказывается на качестве:
23:45 <+TD-Linux> I should mention also, of the 10% gains that VP10 has, 3-4% are just due to always using 12(?)bit
23:46 < q> Does VP10 support 12bit mode only?
23:54 <+TD-Linux> that figure was running it so
Полсекунды от начала обрежь, если с ютуба скачал, и не еби мозги.
Можно отдельный кадр с превью добавить, если чернота слишком долгая в начале, чтобы часть звука не терять при ее обрезании.
WebMaster так делает по умолчанию: https://github.com/pituz/webm-thread/blob/master/tools/WebMaster#L158
Почему бы просто макабу не поправить, чтобы превью генерировалось из кадра посередине видео, как на всех нормальных бордах и видео-хостингах? Я фигею с этих костылей, конечно, как вообще можно было додуматься так сделать и ничего после этого не менять. Или поставить 20MiB лимит в /b/, а в тематике так и оставить мизерный 6. Так вообще пропадает всякое желание что-то оптимизировать, если можно просто дикий битрейт вфигачить; при этом эта работа по сути одноразова, т.к. на другую борду уже не перепостить. Хотя б 12-16 везде, ещё куда бы ни шло. Или 8 для совместимости с 8chan.
Заодно и H.265 разрешить, давно уж пора. Это было бы куда продуктивнее вколачивания бешеных лимитов — появилось бы некоторая конкуренция между VP9 и H.265 пользователями, что могло бы привести к выработке более эффективных гайдов.
> Почему бы просто макабу не поправить, чтобы превью генерировалось из кадра посередине видео
Предсказуемость сломается. Нахуй нужно.
> Заодно и H.265 разрешить, давно уж пора.
Какие браузеры его поддерживают?
>Предсказуемость сломается.
Что это значит?
>Нахуй нужно.
Нужно чтобы превью соответствовало содержимому, без специальных костылей и подпорок. Ладно бы это была распространённая практика, так данное решение это уникальный сосач-only идиотизм. У тебя аргумент уровня утки. Давай будем при генерации превью для изображения брать первые 200x200 пикселей. Что, не осилишь ImageMagick-скрипт накорябать?
>Какие браузеры его поддерживают?
Firefox в Linux играет с соответствующими gstreamer-плагинами. https://github.com/strukturag/gstreamer-libde265 для H.265, для MP4/AAC то же, что и в случае H.264. Только что проверил — всё работает, только с цветами налажал. Но у меня и на совершенно нормальных VP9 yuv444p цвета ехали, так что здесь в чём-то другом проблема.
Для Windows и Mac DivX плагин — http://labs.divx.com/node/127923 Может ещё какие плагины поддерживают, типа того же VLC. Вы же для 10bit ставите плагины, в чём проблема для H.265 тоже поставить?
Теперь для всего ставить васяноплагины? Нахуй не надо. Тем более как их загружать? Абу пришлось бы разрешить загрузку не только вебмок, а и других контейнеров под 265, короче ебли дохуя, толку нихуя.
> Что это значит?
Значит, что ты не сможешь сделать вебмку с определённым превью. А если и сможешь, то только путём впихивания кадра в середину видеоряда, что может нарушить целостность его восприятия.
> Нужно чтобы превью соответствовало содержимому
Сейчас это лежит целиком на плечах создателя вебмки — он может выбрать для превью тот кадр, который по его мнению лучше всего укажет на содержимое.
> Вы же для 10bit ставите плагины, в чём проблема для H.265 тоже поставить?
Их ставят единицы. А макаке, я полагаю, нужно чтобы работало у большинства.
А ещё патентные отчисления за форматы. Неизвестно, где находится хостинг, и нужно ли там их платить.
>Теперь для всего ставить васяноплагины?
Скоро и нативно будет, тем более на Windows/Mac (кстати, в Safari может уже работает, они это любят). H.264 ж везде нативно, хоть и тоже патентованный. В случае Linux вообще никакой разницы не вижу, для H.264 и сейчас надо пакет ставить.
>Абу пришлось бы разрешить загрузку не только вебмок, а и других контейнеров под 265
Ну и? MP4 контейнер даже более популярен, чем WebM в HTML5 video, в IE/Safari только он и поддерживается. На некоторых чанах MP4/H.264/AAC уже разрешены. Соответственно, всего лишь добавить в разрешённые ещё один видео-кодек.
>толку нихуя
Бенчмарки/сравнения читал? H.265 процентов на 15 эффективнее, чем VP9. А VP9 иногда и H.264 сливает, особенно при больших bpp.
>>1398004
>Значит, что ты не сможешь сделать вебмку с определённым превью
>Сейчас это лежит целиком на плечах создателя вебмки
И кому это надо? Ты понимаешь, что вставляя левый кадр в первую секунды видео, ты таким образом нарушаешь его визуальное восприятие? И что обычное среднее видео, сделанное без применения костылей, будет часто иметь кривое превью? Ещё раз говорю — так больше никто не делает, насколько я заню. Т.е. поддержки никакой в инструментах нет, ровно как и смысла так делать. Опять же, см. мою аналогию с обычной картинкой.
Если действительно надо и делать по-нормальному, то нужно брать первый кадр из второго видео-потока. Только что проверил — WebM с двумя видео-дорожками отлично создаются и играются в Firefox. В общем, ты меня совсем не убедил своими ретроспективными объяснениями. А ведь всё дело в лени/криворукости программера двача и ты это прекрасно понимаешь.
>А макаке, я полагаю, нужно чтобы работало у большинства
WebM не играются в IE и Safari. Так что как минимум MP4/H.264/AAC поддержка также должно присутствовать. H.264 иногда более оправдан, чем VP9, кстати. На больших bpp он способен намного быстрее приблизиться к pixel perfect.
>А ещё патентные отчисления за форматы. Неизвестно, где находится хостинг, и нужно ли там их платить.
Серьёзно их воспринимают только в США → https://en.wikipedia.org/wiki/Software_patent#Jurisdictions Там, где хостится двач, с учётом специфики борды, уверен, что на них уверенно кладут. Да и не тот масштаб, чтобы кто-то начал этим троллить, это ж не стриминг уровня ютуба или нетфликса.
>>1398021
Типо hot topic! Хотя, мне тоже не очень нравится, 2к-постовые треды очень тяжело ворочаются, особенно с включёнными скриптами. Много 500-постовых было бы лучше.
>Теперь для всего ставить васяноплагины?
Скоро и нативно будет, тем более на Windows/Mac (кстати, в Safari может уже работает, они это любят). H.264 ж везде нативно, хоть и тоже патентованный. В случае Linux вообще никакой разницы не вижу, для H.264 и сейчас надо пакет ставить.
>Абу пришлось бы разрешить загрузку не только вебмок, а и других контейнеров под 265
Ну и? MP4 контейнер даже более популярен, чем WebM в HTML5 video, в IE/Safari только он и поддерживается. На некоторых чанах MP4/H.264/AAC уже разрешены. Соответственно, всего лишь добавить в разрешённые ещё один видео-кодек.
>толку нихуя
Бенчмарки/сравнения читал? H.265 процентов на 15 эффективнее, чем VP9. А VP9 иногда и H.264 сливает, особенно при больших bpp.
>>1398004
>Значит, что ты не сможешь сделать вебмку с определённым превью
>Сейчас это лежит целиком на плечах создателя вебмки
И кому это надо? Ты понимаешь, что вставляя левый кадр в первую секунды видео, ты таким образом нарушаешь его визуальное восприятие? И что обычное среднее видео, сделанное без применения костылей, будет часто иметь кривое превью? Ещё раз говорю — так больше никто не делает, насколько я заню. Т.е. поддержки никакой в инструментах нет, ровно как и смысла так делать. Опять же, см. мою аналогию с обычной картинкой.
Если действительно надо и делать по-нормальному, то нужно брать первый кадр из второго видео-потока. Только что проверил — WebM с двумя видео-дорожками отлично создаются и играются в Firefox. В общем, ты меня совсем не убедил своими ретроспективными объяснениями. А ведь всё дело в лени/криворукости программера двача и ты это прекрасно понимаешь.
>А макаке, я полагаю, нужно чтобы работало у большинства
WebM не играются в IE и Safari. Так что как минимум MP4/H.264/AAC поддержка также должно присутствовать. H.264 иногда более оправдан, чем VP9, кстати. На больших bpp он способен намного быстрее приблизиться к pixel perfect.
>А ещё патентные отчисления за форматы. Неизвестно, где находится хостинг, и нужно ли там их платить.
Серьёзно их воспринимают только в США → https://en.wikipedia.org/wiki/Software_patent#Jurisdictions Там, где хостится двач, с учётом специфики борды, уверен, что на них уверенно кладут. Да и не тот масштаб, чтобы кто-то начал этим троллить, это ж не стриминг уровня ютуба или нетфликса.
>>1398021
Типо hot topic! Хотя, мне тоже не очень нравится, 2к-постовые треды очень тяжело ворочаются, особенно с включёнными скриптами. Много 500-постовых было бы лучше.
>типа того же VLC
Лол. Я его ставил, так он здесь не заработал из-за https. Да и vp9 он играл плохо.
> И кому это надо?
Клепальщикам вебмок для сосача, кому ещё.
> Ты понимаешь, что вставляя левый кадр в первую секунды видео, ты таким образом нарушаешь его визуальное восприятие?
Если кадр вставляется в середину видеоряда, его восприятие нарушается значительно сильнее.
Кроме того, кадр для превью можно вставлять отдельной дорожкой, тогда его при воспроизведении вообще не будет видно.
> И что обычное среднее видео, сделанное без применения костылей, будет часто иметь кривое превью?
Обычное среднее видео не влезет в лимит 6мб.
> Ещё раз говорю — так больше никто не делает, насколько я заню.
Потому что у порноблядей нет культуры лепки вебм, вестимо.
> поддержки никакой в инструментах нет
https://github.com/pituz/webm-thread/blob/master/tools/add-preview
> Если действительно надо и делать по-нормальному, то нужно брать первый кадр из второго видео-потока.
Скрипт по ссылке выше так и делает. Используется особенность ffmpeg: он считает дефолтной видеодорожку с большим разрешением.
> 2к-постовые треды очень тяжело ворочаются, особенно с включёнными скриптами
Ну да, надо бы перекатывать на тысячном посте где-то.
> Я его ставил, так он здесь не заработал из-за https.
Это зависит от фазы луны отношения к твоему айпишнику клаудфлары: если она пускает без куков и javascript-защиты, то всё работает.
А вообще да: то, что vlc не может использовать браузер для получения контента и вместо этого сам ебётся со ссылкой, портит всю малину.
>Если кадр вставляется в середину видеоряда, его восприятие нарушается значительно сильнее.
Не, я не предлагал так делать. Просто кадр из середине намного чаще передаёт суть видео, чем первый.
>Обычное среднее видео не влезет в лимит 6мб.
Ну не скажи. С ютуба вон можно скачать часто простые клипы в подходящем размере, если youtube-dl нужный формат задать. Или вырезать через -c copy очень ок, чтобы не было потерь от лишней перекодировки.
>>поддержки никакой в инструментах нет
Я имею ввиду не сделанных специально под сосач.
>Скрипт по ссылке выше так и делает. Используется особенность ffmpeg: он считает дефолтной видеодорожку с большим разрешением.
Ну вот так ещё норм. Хитрый workaround, однако. А фигли тогда во всех инструкциях к началу кадр прилепляется? (Кстати, никто не пробовал ещё выебать макаку через buffer overflow в ffmpeg? Как минимум крашей полно было.)
>>1398060
Я большинство webm через mpv смотрю, почти всегда напрямую проигрывается. Вообще, странно ставить обычную статику под защиту от ботов. Отдельный домен и CDN для этого используется. Вон как на форчане. Опять всё не как у людей.
> А фигли тогда во всех инструкциях к началу кадр прилепляется?
Потому что было лень написать. А ещё вторая видеодорожка — это нарушение спецификации формата: положено делать только одну.
>А ещё вторая видеодорожка — это нарушение спецификации формата: положено делать только одну
Пруф? Я перед тем как предыдущее сообщение написать, бегло просмотрел спеки и явного запрета не нашёл:
http://www.webmproject.org/docs/container/
https://w3c.github.io/media-source/webm-byte-stream-format.html
http://wiki.webmproject.org/webm-metadata/global-metadata
Зато есть ряд вещей, подразумевающих, что так делать можно — структура Track, описания полей и т.д.:
http://www.webmproject.org/docs/container/#track
К тому же ни ffmpeg, ни Firefox никаких недовольств не выказывают от подобных файлов.
Хотя это, конечно, курам на смех, а не документация.
Я это встречал то ли в педивикии, то ли по первой ссылке из твоего списка, но теперь там этого нет. Нагуглилось только https://groups.google.com/a/webmproject.org/forum/#!topic/webm-discuss/J8xN-Fc2rAQ .
> Зато есть ряд вещей, подразумевающих, что так делать можно — структура Track, описания полей и т.д
Наследие матрёшки же. Но похоже, действительно, от идеи ограничить кол-во дорожек разработчики ушли.
Что ты с моей вебмкой сделал, ирод? Даже я так над ней не издевался!
Скорее всего ненулевой профиль у VP9. Хром на таких падает, это известный факт.
Yе только в падении хрома было дело.
там был html вместо webm
[code] <!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en-RU"><head><meta content="/images/branding/googleg/1x/googleg_standard_color_128dp.png" itemprop="image"><link href="/images/branding/product/ico/googleg_lodp.ico" rel="shortcut icon"><meta content="origin" id="mref" name="referrer"><title>Google</title> <script>(function(){window.google={kEI:'_mcAVtA9goDMA_KauJgE',kEXPI:'3700062,3700325,4029815,4031109,4031139,4032235,4032500,4032678,4033307,4033344,4034882,4036527,4037333,4037569,4037934,4037962,4037964,4038012,4038214,4039747,4040676,4041440,4041507,4041776,4041835,4041897,4042158,4042180,4043255,4043411,4043439,4043440,4043491,4043564,4043568,4043596,4044246,4044339,4044593,4044606,4044854,4044938,4045003,4045413,4045631,4045717,4045841,4045872,4046043,4046059,4046080,4046121,4046304,4046340,4046606,4046803,4046835,4046837,4046904,4047530,4047593,4047599,4047601,4047667,4047914,4048125,8300199,8300202,8501987,8501992,8502157,10200083',authuser:0,j:{en:1,bv:21,pm:'p',u:'2cca1ae4',qbp:0,rre:false},kscs:'2cca1ae4_21'};google.kHL='en-RU';})();(function(){google.lc=[];google.li=0;google.getEI=function(a){for(var b;a&&(!a.getAttribute||!(b=a.getAttribute("eid")));)a=a.parentNode;return "2048" =function(a){this.w=_.mm.R();this.o=a};_.pm.prototype.b=function(a,c){"t"==_.om(this.w)?(_.T(a,"gb_V"),c?(_.S(a,"gb_Ra"),_.T(a,"gb_Zd")):(_.S(a,"gb_Zd"),_.T(a,"gb_Ra"))):_.Rg(a, [/code]
весь не помещается.
а ну ка ся
а ну ка ся
Слышал вот про эти, что вроде как работают:
Avidemux
Blender VSE
Cinelerra
Kdenlive
Kino
OpenShot
Pitivi
и т.д. https://en.wikipedia.org/wiki/List_of_video_editing_software#Free_and_open-source
, но интересует что-нибудь уровня Vegas хотя бы, не только простая нарезка. Была надежда на Lightworks, но они прокатили, похоже, за 5 лет так ничего и не сделали.
Точнее Lightworks зарелизилась под Linux недавно:
http://www.lwks.com/index.php?option=com_lwks&view=download&Itemid=206&tab=1
https://www.youtube.com/watch?v=3lG0vLQCF7k
Но без сорцов и упрощённая версия.
Ещё в ней нельзя экспортировать лосслесс, только пожатый встроенным кодеком H.264 с ограничением по разрешению. Фигня, короче.
Подожди, помершелл ведь не умеет exe открывать из-за каких-то политик безопасности. Как ты это сделал?
Что конкретно нужно? Всякие эффекты?
Бери редакторы на фреймворке MLT (kdenlive, shotcut). Если их возможностей мало — пробуй blender.
Хоспади одни негры и белые бабы с неграми. Как же американцы заебали с насаждением белых баб на черные хуи.
Ну да. Эффекты, маски, слои и т.д. Большинство программ из того списка, судя по скриншотам, что-то на уровне Movie Maker.
Вот, кстати, ещё интересно: https://en.wikipedia.org/wiki/AviSynth#AviSynth_for_non-Windows_operating_systems AviSynth с открытыми исходниками, так что зашквара нет.
Печально, что практически все гайды пишутся под платную проприетарщину типо After Effects и скрипты на AviSynth.
> Большинство программ из того списка, судя по скриншотам, что-то на уровне Movie Maker.
Ты не скриншоты смотри, а списки фич.
> Вот, кстати, ещё интересно: https://en.wikipedia.org/wiki/AviSynth#AviSynth_for_non-Windows_operating_systems
Практически все плагины из AviSynth уже портированы на AvxSynth.
>Ты не скриншоты смотри, а списки фич
Так я и спросил, кто что использовал. Список фич не показатель.
>уже портированы на AvxSynth
Чего-то он дохлый какой-то, судя по активности. Да и поведение слегка отличается от вендового + оптимизаций мало:
https://github.com/avxsynth/avxsynth/wiki/Built-in-Functions
> Так я и спросил, кто что использовал.
Тыкал я всё из твоего списка, использовал же только kdenlive и немного blender.
Другое дело, что я мувимэйкер и вегас, на которые ты ссылаешься, ни разу не видел.
> Список фич не показатель.
С хуя ли?
Кстати, вспомнил. Неплохой кроссплатформенный аналог AviSynth — VapourSynth. Выглядит намного живее чем AvxSynth, его даже mpv умеет. С ffmpeg, правда, только через пайп. Может пригодиться если фильтров ffmpeg не хватит (тот же dithering при PNG→YUV надо в нём проверить).
Почитал обзоры, Kdenlive, Shotcut и Blender VSE действительно выглядят самыми вменяемыми. Буду пробовать.
>>1401282
Теоретически может дать чуть лучше качество при том же битрейте, но не рекомендуется в том числе даже разработчиками.
См. http://www.webmproject.org/docs/encoder-parameters/#2-encode-quality-vs-speed
Сэнкоди с --best и с --good сам разные видео, сделай сравнение по скриншотам и метрикам, всем будет интересно (серьёзно).
>Сэнкоди с --best
frame= 77 fps=0.0 q=0.0 size= 418kB time=00:00:02.79 bitrate=1225.6kbits/s
Блеать, уже ебаных пол часа!
Вот для примера.
Кодировались обе так (первый проход такой же, как и второй, только заменен номер потока и выходной файл):
ffmpeg -ss 25:43.125 -i input.mkv -t 128.875 -map 0:v -vf scale=1280:-1:flags=lanczos -c:v vp9 -pix_fmt +yuv420p -b:v 540k -auto-alt-ref 1 -lag-in-frames 25 -frame-parallel 0 -tile-columns 0 -pass 1 -quality good -cpu-used 0 -f null -y NULL
ffmpeg -ss 25:43.125 -i input.mkv -t 128.875 -map 0:v -vf scale=1280:-1:flags=lanczos -c:v vp9 -pix_fmt +yuv420p -b:v 540k -auto-alt-ref 1 -lag-in-frames 25 -frame-parallel 0 -tile-columns 0 -pass 1 -deadline 0 -f null -y NULL
На выходе качество внешне одинаковое, но при дедлайне 0 размер видеодорожки ощутимо меньше (в дедлайн до лимита влез -c:a libvorbis -q:a 4 и еще осталось место, а при цпуюзед 0 либворбис с 4 качеством не влез).
Выводы делай сам.
http://rghost.ru/84vXDP26S
http://rghost.ru/7L6yzp5W2
Ты мерзавец.
Вот я, кстати, в данный момент нулевым дедлайном, но в 4 потока с -тайл-колумнс 6, кодирую под лимит в 6 МБ.
Завтра посмотрим, что из этого получится.
0:46
1:12
В каких-то случаях у --good деталей детали чуть лучше сохранились, так что тут хз даже как сравнивать. А видео-дорожка --best всего лишь 193 на килобайта меньше весит:
8046253\tbest.webm
8239733\tgood.webm
>>1401371
Кстати, тут недавно обнаружил, что некоторый софт очень не любит нечётные разрешения, а некоторые кодеки даже не поддерживают (H.264). 860x484 вроде чаще используется если нужно 480p. Или принудительно скейлить в 854x480 как на ютубе, например.
Ну это не для софта же кодируется, в софте нужно с оригиналом работать.
Кстати, на мой взгляд, делати лучше сохранились в best, так как в good над шляпой у нее размытие больше.
Да и вообще при гуд мыла побольше, как обычно при нехватке битрейта.
Вообще дедлайн 0 все же позволяет уменьшить количество квадратов при сильной нехватке битрейта, только я старые версии файлов с -cpu-used 0 не сохранил, чтобы показать в сравнении, оставил только с -deadline 0.
>Вообще дедлайн 0 все же позволяет уменьшить количество квадратов при сильной нехватке битрейта
А засекал сколько по времени оба варианта кодируются? Я пару раз попробовал и решил что это совсем не практично. Даже tile-columns=0 на 720p всё слишком печальным делает.
-deadline 0 по сравнению со -speed 0 примерно в 10-20 раз дольше кодируется, в зависимости от сложности картинки и количества движения.
Уже что-то в мастере, можно собирать, тыкать.
Кстати, куча интересных видео с последнего VDD: https://www.youtube.com/playlist?list=PLQLpBN3oI7E44HIdTOovThc1MNHLchgHE
Daala, VP10, Thor, VP9 vs HEVC и т.д.
ВиртуалДаб, но я не уверен что он все еще поддерживается
Первое видео без дедлайн 0. Размер видео дорожки - 3982kB.
У второго - 3898. Итого 84kB выигрыша(2.1%) за более чем 5 часов кодирования.
Лучше в тот же размер кодируй и так, чтобы хоть в одном видео были чёткие сцены. А то и там, и там мыло, как такое сравнивать?
Впрочем, я б вообще не стал говорить, что best чем-то лучше. Вот на 1.6с, например. Да, поменьше квадратов, зато у good на волосах деталей однозначно больше. И выкладывай оригинал.
Вот, почитай: https://web.archive.org/web/20141103202912/http://x264dev.multimedia.cx/archives/472
> И выкладывай оригинал.
Оригинал скачан с ютуба при помощи Savefrom plugin
https://www.youtube.com/watch?v=wVuA74sdMIw&list=PLdlYDgo7NRtb1z-viy6robuHw2Xlf75q5&index=23
MP4 720
Оригинал тоже говнина полная хоть и няшечки. Но однозначно у good на волосах деталей больше осталось.
Тестируй отсюда: https://media.xiph.org/video/derf/ Или хотя бы качественные H.264 рипы бери.
-loglevel debug добавь, большую часть напишет.
Ещё смотри https://github.com/Kagami/webm.py/wiki/Notes-on-encoding-settings#defaults и, если не хватит, раскомментируй https://chromium.googlesource.com/webm/libvpx/+/c77b1f5acd09852aff1ba09d7f371728a60634d7/vp9/vp9_cx_iface.c#492 и пересобери.
Тогда можно было бы посмотреть сколько реально экономит дедлайн 0 при одинаковом качестве.
Я это ещё в >>1401731 сказал. И в основном тестируют не при «одинаковом качестве», а при одинаковом размере, т.к. качество в двух различных энкодах будет всегда разным, это не дискретная величина как размер.
И долго не надо, Daala (и другие кодеки) тестируют на коротких (1-10 секунд) непожатых видео различного плана. Чем больше исходников, тем лучше, см. https://gist.github.com/Hupotronic/4645784#gistcomment-756444
Хромает методология совсем, короче. Можешь посмотреть записи с прошлого NetVC, там рассказывали как AWCY работает.
>Что посоветуете?
Читать ОП-пост перед тем, как писать в тред
>Основным обсуждаемым здесь инструментом является ffmpeg. Пердолики с мокрописечными гуями вроде xmedia recode и прочие клепальщики распидорашенного кривопиксельного говна из порнотреда со своими воплями о ненужности консоли не нужны сами — пусть сначала научатся делать качественные вебмки, а потом уже лезут сюда с советами.
Нужно было сделать буквально одну вебмку в /r на опознание мелодии.
Что же, как с помощью ffmpeg это сделать, причём вырезать из исходного ролика два фрагмента и слепить в один файл?
Он где-то писал, что консолечка не нужна или поучал кого-то как кодить вебм?
Ну так тред не для него. Пусть обращается к разрабам своей мокрописьки.
а как теперь 2ch.hk сайт называют?
>нету такого треда
Ого не ожидал, столько говна есть, а полезных тредов почти нет.
Спасибо вам хоть про ВебМки тред запилили.
Сосач будет всё же неверным, на мой взгляд, потому что возникнет путаница с обозначением сайта в период араспоожения на 2ch.so
Как раз тогда и возник этот термин и до сих пор живёт. Сосач это прикольно. Сосать хуй это прикольно. Народу нравится.
Мне всё же больше нравится харкач, в таком пренебрежительном сравнении с харчком на пол. И как бы олицетворение аудитории - быдлота, постоянно плюющая на пол, себе под ноги (лично меня это очень раздражает, например)
Голосую за хоркач, сосут тут мало, в основном на хуй посылают и срут везде.
К сожалению, номер кадра и его тип так не показать, и OSC тоже не работает из-за кривости API. Накорябал небольшой враппер и для ffplay, так всё получше с доступной информацией, но сам ffplay жутко кривующий, да и скриншотить надо отдельно.
http://pastebin.com/jZKEnkkq
Лолировал заливаясь хохотом от смеха с этого нового ньюфага в этом ИТТ треде.
Ты поди ещё и на сосаче не сидел, ньфажина нубская? А про тот двач вообще не слыхал? Может ты и про коробочку фотонов не в курсе, пёс шелудивый?
Не на того вскукарекнул, дауненок.
Антон, какого хуя на моем хакинтоше вместо вебма показывает вот такую поебень? Расскажи скорей, как пофиксить.
>Кстати, говорят что в VP10 будет 12бит по умолчанию и что это таки сказывается на качестве
Вот слайд.
Обратитесь в сертифицированный (R) сервис (c) центр (тм)
Даун репортинг ин. С большинством проблем разобрался, за исключением того, что получается музыка без картинки. Поаутирую у вас еще немного.
Xvid4psp-кун
В консольке удобнее, быстрее и качественнее, а главное все под контролем.
Чего ж не показал VP9, который наверняка с доисторической libvpx, не умеющей даже в многопоточность. Очень удобно.
Или настройки кодека на пикрелейтеда. Ты понимаешь, что здесь вообще происходит? Ты понимаешь, что он оборачивает консольный x265 хрен знает каким наобором гуёвых элементов с неизвестно насколько хорошо проставленными дефолтами? Очень удобно, наверняка, рыться за нужной опцией по сотне вкладок.
Вообще, читай >>1396973 и http://arhivach.org/thread/100617/#1243814 , уже 100 раз обсуждалось, что гуёвины неизбежно прососут, как только понадобится чуть более свежая или непредусмотренная автором возможность. И венда/линукс здесь совершенно не причём (я офигеваю с этого чёрно-белого взгляда) — все адекватные люди на венде используют консольные x264 и AviSynth и в ус не дуют. Я понимаю, что для тебя предел мечтаний это просто как-то закодировать видео, которое будет как-то проигрываться, но тред-то и не про это. Твои евангелисткие откровения здесь никого не волнуют и не удивят, все здесь постящие знакомы с наиболее популярными гуёвыми обёртками как под винду, так и под линукс, и не используют их исключительно в силу практических причин.
Вот вам, кстати, наглядный урок, как можно гуёвинами (наверняка) и небрежностью по типу предыдущего постера запороть видео:
https://github.com/mpv-player/mpv/wiki/Fixing-Simulcasts#wrong-color-range
http://screenshotcomparison.com/comparison/83071
Тоже ведь, скорее всего, в таком ключе рассуждали — зачем мне разбираться, автор гуёвины уж точно мастер своего дела и за меня всё продумал. Нажал кнопку и готово.
Ты тред вообще читаешь?
Вообще лучше всего использовать -quality good -cpu-used 0 (или -speed 0, что одно и то же).
Так и качество/размер хорошее, и кодируется не слишком долго.
Но с введением лимита в 20МБ можно, конечно, и просто -good, только битрейта побольше надо выставить, или просто -b:v 0 -crf 15 где-нибудь.
-best стоит использовать когда что-то совсем годное решил закодировать по лимиту в максимальном качестве и можешь подождать день-два-три, но такие ситуации редко возникают.
Не стоит. Разница не существенна и не стоит того, чтобы кодировать вебмс часами.
>Но с введением лимита в 20МБ можно, конечно, и просто -good
Я всегда, кстати, со -speed 1 кодирую (и -speed 4 первый проход), даже под 6-8MiB лимит. Ждать больше чем 5x для сраной вебмки как-то не комильфо. Там всё равно разница не настолько значимая; уменьшение длительности, разрешения и FPS самые первые кандидаты при оптимизации. Париться приходится когда всё совсем плохо и там десяток кбитс от tile-columns=0, speed=0 или deadline=0 решить проблему не в состоянии.
Кстати, зацените как на самом деле аниме рисуют. -r 12 на большинстве сцен можно смело ставить.
Ну анимцо кодировать вообще как угодно можно, там картинка совсем простая и 8фпс.
Если все же картинка снята на камеру и много движения, то -speed 1 от -speed 0 будет сильно отличаться, гораздо сильнее, чем -speed 0 от -deadline 0, вплоть до наличия/отсутствия видимых квадратов при одинаковом битрейте.
А подождать не проблема, всегда можно оставить на ночь, проснуться и все будет закодировано, если, конечно, не -deadline 0.
>или просто -b:v 0 -crf 15 где-нибудь.
Нафига столько, кстати? Я 23-25 для коротких клипов ставлю, там с лупой надо смотреть, чтобы отличить. 15 это дикий перерасход битрейта обычно.
В позапрошлом треде ещё проскакивала идея ставить -qmin 15, чтобы зря не расходовать битрейт. Особо не тестил, но выглядит интересно.
Но ведь не запостишь потом никуда, кроме hk/b/ нигде таких лимитов больше нет.
Я тут VapourSynth осилил. Думал какая-то неизвестная прыщавая поделка, а он чуть ли не популярнее AviSynth уже и фильтров куча крутых портировано. Было бы интересно взять какой-нибудь фиговый сорец, через flash3kyuu_deband пропустить и в 12бит VP9 закодировать.
Проверил, действительно, даже при -b:v 0 -crf 35-40 вполне хорошее качество, по крайней мере при 960x540.
import vapoursynth as vs
core = vs.get_core()
c = core.imwri.Read("pur.lossless.png")
c = core.std.AssumeFPS(c, fpsnum=1)
c = core.fmtc.matrix(c, mat="709", col_fam=vs.YUV, bits=16)
c = core.fmtc.bitdepth(c, bits=8)
c = core.std.Loop(c)
c.set_output()
vspipe pur.vpy --y4m - | ffmpeg -i - -c:v libvpx-vp9 -lossless 1 -colorspace bt709 -t 10 -y pururin.webm
Впрочем, я бы не сказал, что -vf format=rgb48,scale=out_color_matrix=bt709,format=yuv444p даёт результат хуже. Похоже, у ffmpeg всё же есть dithering при конвертировании с понижением битности; дефолтная конвертация 8bit RGB → 8bit YUV просто ужасна.
Зато VapourSynth погибче будет и фильтры к нему можно дописывать.
Поцаны, не вебм но тоже фмпег.
ffmpeg -i input -c:v libx265 -preset veryslow -crf 18 -c:a aac -strict experimental -b:a 128k output.mkv/mp4
Вопрос: 1. В исходнике стерео, аудио дорожка, AAC 48000Hz, я хочу сконвертить в 41000, как?
2. На будущее, а если дорожка пятиканальная, как её конвертнуть в двухканальную?
3. Для x.265 какой лучше контейнер? А аудио, может нахуй AAC?
4. Что ещё посоветовать?
>В исходнике стерео, аудио дорожка, AAC 48000Hz, я хочу сконвертить в 41000, как?
-ar 44100
>На будущее, а если дорожка пятиканальная, как её конвертнуть в двухканальную?
я лично делаю это в саундфорже, но в ффмпеге тоже есть такая возможность.
https://trac.ffmpeg.org/wiki/AudioChannelManipulation
>Для x.265 какой лучше контейнер?
не вижу причин использовать не mkv
>А аудио, может нахуй AAC?
может быть
-hide_banner -loglevel error -stats
Есть подозрение что из-за этого: https://bugzilla.mozilla.org/show_bug.cgi?id=1148102 Недавно только смержили.
Код выглядит нормально, впрочем: https://hg.mozilla.org/mozilla-central/rev/5a780859dc1c#l3.541
Итератор по списку треков, используем для видео первый. Но в найтли почему-то используется последний (пробовал и на трёх треках).
Можно обойти, положив трек с контентом последним, но тогда плеер и стабильная лиса будут неправильно показывать (сосач всё ещё правильно, впрочем). Можно force/default=true поставить ещё попробовать втором треку. Или зарепортить в багзиллу.
Бля, я не туда смотрел оказывается.
Таки баг в коде демуксера: https://hg.mozilla.org/mozilla-central/rev/5a780859dc1c#l3.260 На 272-ой строчке не проверяется, что трек уже мог быть добавлен и поэтому луп крутится до последнего видео-трека.
Можно зарепортить но мне лень.
спс
Ещё не заревьюили, но вроде разработчик нового демуксера согласен, что баг.
Убери лишние \
В твоем случае нужно вообще убрать \ - они нужны были, чтобы скрипты писать не в одну строку, а ты просто все вводишь в консолечку - в одну строку
А может просто пофапать на эту милашку? Звучит заманчиво, а жене сказать что сегодня болит голова.
Пацаны уважать не будут.
Ещё можно найти пикчу на iqdb.org и смотреть другой арт этого художника. Теги авторства обозначаются на gelbooru красным цветом, а Роскомнадзор, возможно, кого-то от этого недуга спас.
Ну и не стоит забывать о том, что это тред о кодировании вебмок, а не о тохоарте, и не разводить тут не относящихся к нему дискуссий. Для touhou где-то тут была отдельная доска..
> это ведь некорректно правильней было бы написать Gecko.
Потому что gecko -- это не браузер, вот почему.
Блять, я понимаю, но "Firefox based" тоже не браузер, а что-то основанное на лисе, а значит логичнее было бы писать название движка , а не самого браузера.
Левый пик: сравнение затрачиваемого на кодирование одного кадра времени с изменением битрейта относительно x264 с --preset=veryslow при том же качестве по SSIM. Менялись пресеты x26{4,5} и --cpu-used vp9.
Правый пик: декодирование видео с тем же качеством, но разным битрейтом. Libvpx (который используется в т.ч. в браузерах) соснул полностью.
Потому что для этого надо тащить целый libavcodec, авторы которого клали на патенты сшп.
Так это просто пересказ его выступления с VDD2015, которое было чуть выше по треду: https://www.youtube.com/watch?v=_Q6J2_nvLSI
Через пару дней вот это выйдет: http://compression.ru/video/codec_comparison/call_for_codecs_15.html Там должно быть покачественнее сравнение.
>который используется в т.ч. в браузерах
Хромиум использует ffvp8 для VP8 без альфа-канала (большинство): https://chromium.googlesource.com/chromium/src.git/+/c219d1def47875bf0569c7f931620e6c9f94a801/media/filters/vpx_video_decoder.cc#328
ffvp9 почему-то по умолчанию ещё не используется, но нужно всего лишь выключить libvpx при компиляции для этого.
ff, как обычно, соснул, у него ебанутые прослойки из гстримера и либав и только libvpx для webm.
Меня на самом деле больше заинтересовал его анализатор VP9, он даже одобрительно отнёсся к идеи открыть исходники.
>>1407085
Ну вон хромиум тащит в third_party, ему похуй. А для лисы сраные прослойки в виде гстримера с его вечно глючными декодерами.
>и только libvpx для webm
Ещё есть поддержка аппаратных декодеров Intel, впрочем, но только для венды: https://hg.mozilla.org/mozilla-central/file/6256ec9113c1/dom/media/webm/moz.build#l26
Это же только для новых процессоров?
Я включил media.webm.intel_decoder.enabled, так на youtube показывает ошибку и начинает отдавать видео во флеше. haswell
Да, Broadwell и Skylake, причём на первый в прошлом треде жаловались как недостаточно производительный: http://arhivach.org/thread/100617/#1377625
>>1405269
>>1405647
Я тут рылся в коде и случайно нашёл wokaround: надо поставить media.format-reader.webm в false, тогда будет использоваться старый демуксер.
Можно пользоваться этим хаком, пока не пофиксили.
Firefox, как оказалось, всегда показыват BT.601, несмотря ни на какие теги и вне зависимости от разрешения. В хроме не проверял. mpv корректно работает с тегами цветового пространства. Видимо, пока в браузерах поддержка видео в таком зачаточном состоянии, нужно всегда использовать BT.601 для совместимости с помощью принудительного -vf colormatrix=bt709:bt601 для всего HD.
Ну да, генератор превью думает, что видео всегда в BT.601. Я ебал весь этот хаос, происходящий в видео-энкодинге.
Ну так ясно дело. Но ведь можно вручную поставить цветовое пространство YUV на входе с помощью -vf scale=in_color_matrix=X при генерации JPEG из WebM. Эвристики можно использовать как у mpv, так вроде все делают. От ffmpeg ждать исправления, думают, не стоит, поломает кучу всего, что сейчас завязано на такое поведение.
Хотя, я пожалуй слишком много хочу от кодеров сосача, которые даже превью брать из кадра посередине видео или yuv444p не осилили.
> превью брать из кадра посередине видео
Не нужно, блять, этого делать! Превью из первого кадра — стандарт имиджборд. Так делается везде — на форчане, краутчане, гелбуре, различных мелкобордах. Авторы вебм под это давно подстроились, и ставить им палки в колёса я не вижу никакого смысла.
> или yuv444p
Тут дело скорее всего в версии ffmpeg. Вангую, что на сервере стоит какой-нибудь стабильный debian или centos и ffmpeg из репозитория.
>на форчане, краутчане, гелбуре, различных мелкобордах
Хм, не знал. Но на 8chan (и всех бордах на tinyboard и infinity next соответственно) из середины.
>Авторы вебм под это давно подстроились
Да ладно. Что-то не видел в форчановских вембах такого изврата с вставкой левого кадра в начало видео.
>и ставить им палки в колёса
Это прежде всего ставит палки в колёсо обычным пользователям, которые привыкли к нормальной генерации превью во всём десктопном софте и вдруг встречают такой идиотизм. Притом что кто мешает использовать отдельный трек для кастомного превью, если так уж надо?
>какой-нибудь стабильный debian или centos и ffmpeg из репозитория
Да понятно. Особенно будет смешно макаке, когда кто-нибудь откопает RCE под древний ffmpeg. В libvpx-то вон сколько находят в каждом выпуске FF и помечают как критические, а в дефолтном ffmpeg куча форматов.
Посоны, как wget'ом слить все webm'ки из треда?
> Что-то не видел в форчановских вембах такого изврата с вставкой левого кадра в начало видео.
Не умеют, наверно. В местном анимублядском это на каждом шагу.
> Это прежде всего ставит палки в колёсо обычным пользователям
Это которые с xmedia recode?
> Притом что кто мешает использовать отдельный трек для кастомного превью, если так уж надо?
Десктопный софт часто сосёт на генерации превью из видеодорожек с единственным кадром. Движок доброчана — тоже.
> Особенно будет смешно макаке, когда кто-нибудь откопает RCE под древний ffmpeg.
Тащемта, во всяких debian'ах уязвимости очень быстро закрывают, часто даже быстрее апстрима.
Пока читал код вокруг, ещё кое-что интересное нашёл: https://hg.mozilla.org/mozilla-central/file/312c68b16549/dom/media/DecoderTraits.cpp#l209
Опция выглядела очень многообещающе, поэтому вначале пришлось потратить кучу времени, чтобы разобраться как работает гстример. Кое-как накорябал несколько пайплайнов для теста с декодерами vp9dec (gst-launch-1.0 -v filesrc location=test.webm ! matroskademux ! vp9dec ! autovideosink) и avdec_vp9 (gst-launch-1.0 -v filesrc location=test.webm ! matroskademux ! avdec_vp9 ! autovideosink) через gst-launch. Первый работал (использует libvpx), а вот со вторым (использует ffvp9) вылезла куча проблем: в убунте <=15.04 оно вообще не работало, в 15.10 же сегфолтилось где-то в недрах libavcodec-ffmpeg56. Благодаря ебанутости майнтейнеров, libav теперь заменяют обратно ффмпегом, но всё ещё в процессе и, например, для вышеуказанного пакета даже дебаг-символов нет. А gst-libav теперь использует ффмпег, но продолжает называться libav. Плевать, главное чтобы работало. Начал общаться с разработчиками. У них почему-то всё работает, но сидят все на гите, ясное дело. Ну, делать нечего, собираю тоже значит всё из гита. И тут оно сегфолтится опять, а по нормальному стэктрейсу на этот раз всё равно никто ничего ответить не может. Ещё пару часов впустую.
Похуй, думаю, сразу в лисе потесчу, т.к. на fakesink не сегфолтится, значит может проблема где-то в области вывода, а не декодирования. Дальше надо было как-то повыше приоритет для avdec поставить, т.к. в urldecodebin, который использует лиса, первым выбирается vp9dec. Как оказалось, никакого другого способа кроме как удаления плагина руками (libgstvpx.so) нет. Офигеть. Я-то думал там какая-нибудь гибкая система приоритетов, вроде как у DirectShow и редактируется через реестр^W^W отдельно, а оно максимум только в самом приложении выбирается, к которому доступа нет. Лютое говно ваш гстример, в общем.
Ладно, удалил эту либу. Опцию в about:config поставил, пробую и… нихуя. Всё как раньше. И тут, сука, я таки пошёл в GStreamerDecoder::CanHandleMediaType, где выяснилось, что в лисе захардкоженный список кодеков, которые она проигрывает, используя gstreamer: https://hg.mozilla.org/mozilla-central/file/312c68b16549/dom/media/gstreamer/GStreamerFormatHelper.cpp#l64 Охуеть, всё это было зря.
В общем, если у кого тормозит видео на ютубе и линукс, то вот список действий, который по идее должен помочь (будет использоваться ffvp9 для декодирования WebM):
1) Добавить опцию media.prefer-gstreamer=true в about:config
2) Взять gstreamer, gstreamer-libav и libavcodec поновее (уровня Ubuntu 15.10)
3) Удалить/переименовать /usr/lib/gstreamer-1.0/libgstvpx.so (может в другом месте находиться)
4) Пересобрать лису, добавив VP9 в sDefaultCodecCaps (ололо)
Я, впрочем, не уверен, что сам gstreamer не даёт оверхэда и что это не вызовет другие проблемы.
Пока читал код вокруг, ещё кое-что интересное нашёл: https://hg.mozilla.org/mozilla-central/file/312c68b16549/dom/media/DecoderTraits.cpp#l209
Опция выглядела очень многообещающе, поэтому вначале пришлось потратить кучу времени, чтобы разобраться как работает гстример. Кое-как накорябал несколько пайплайнов для теста с декодерами vp9dec (gst-launch-1.0 -v filesrc location=test.webm ! matroskademux ! vp9dec ! autovideosink) и avdec_vp9 (gst-launch-1.0 -v filesrc location=test.webm ! matroskademux ! avdec_vp9 ! autovideosink) через gst-launch. Первый работал (использует libvpx), а вот со вторым (использует ffvp9) вылезла куча проблем: в убунте <=15.04 оно вообще не работало, в 15.10 же сегфолтилось где-то в недрах libavcodec-ffmpeg56. Благодаря ебанутости майнтейнеров, libav теперь заменяют обратно ффмпегом, но всё ещё в процессе и, например, для вышеуказанного пакета даже дебаг-символов нет. А gst-libav теперь использует ффмпег, но продолжает называться libav. Плевать, главное чтобы работало. Начал общаться с разработчиками. У них почему-то всё работает, но сидят все на гите, ясное дело. Ну, делать нечего, собираю тоже значит всё из гита. И тут оно сегфолтится опять, а по нормальному стэктрейсу на этот раз всё равно никто ничего ответить не может. Ещё пару часов впустую.
Похуй, думаю, сразу в лисе потесчу, т.к. на fakesink не сегфолтится, значит может проблема где-то в области вывода, а не декодирования. Дальше надо было как-то повыше приоритет для avdec поставить, т.к. в urldecodebin, который использует лиса, первым выбирается vp9dec. Как оказалось, никакого другого способа кроме как удаления плагина руками (libgstvpx.so) нет. Офигеть. Я-то думал там какая-нибудь гибкая система приоритетов, вроде как у DirectShow и редактируется через реестр^W^W отдельно, а оно максимум только в самом приложении выбирается, к которому доступа нет. Лютое говно ваш гстример, в общем.
Ладно, удалил эту либу. Опцию в about:config поставил, пробую и… нихуя. Всё как раньше. И тут, сука, я таки пошёл в GStreamerDecoder::CanHandleMediaType, где выяснилось, что в лисе захардкоженный список кодеков, которые она проигрывает, используя gstreamer: https://hg.mozilla.org/mozilla-central/file/312c68b16549/dom/media/gstreamer/GStreamerFormatHelper.cpp#l64 Охуеть, всё это было зря.
В общем, если у кого тормозит видео на ютубе и линукс, то вот список действий, который по идее должен помочь (будет использоваться ffvp9 для декодирования WebM):
1) Добавить опцию media.prefer-gstreamer=true в about:config
2) Взять gstreamer, gstreamer-libav и libavcodec поновее (уровня Ubuntu 15.10)
3) Удалить/переименовать /usr/lib/gstreamer-1.0/libgstvpx.so (может в другом месте находиться)
4) Пересобрать лису, добавив VP9 в sDefaultCodecCaps (ололо)
Я, впрочем, не уверен, что сам gstreamer не даёт оверхэда и что это не вызовет другие проблемы.
>Десктопный софт часто сосёт на генерации превью из видеодорожек с единственным кадром
Можно секунд 10 с fps=1 тогда. Это будет весить всего лишь на пару сотен байт больше, чем один кадр.
>во всяких debian'ах уязвимости очень быстро закрывают
Это если CVE появляется именно под программу и указано каких версий и т.д., то понятно, любой дурак сможет патчик, предоставленный экспертом, применить. (Хотя, я б посмотрел, как дебиановцы закроют что-нибудь вроде CVE-2015-2925 быстрее апстрима, ололо, где сам апстрим нихрена не знает, как исправить.)
А вот посмотрим, например, сюда https://www.mozilla.org/en-US/security/known-vulnerabilities/firefox/ на уязвимости, связанные с видео, и сюда http://metadata.ftp-master.debian.org/changelogs//main/libv/libvpx/libvpx_1.4.0-4_changelog и особой корреляции не видим. Часть багов ff-specific, конечно, но часть CVE libvpx я в чейнджлоге не вижу. Или где фикс для CVE-2015-1258 вот здесь http://metadata.ftp-master.debian.org/changelogs//main/libv/libvpx/libvpx_1.3.0-3_changelog ? А в какой-нибудь libvpx1 1.0.0-2~bpo60+1 из squeeze-backports, которая сотню лет не обновлялась, новые баги точно никак не применить? А если найду?
Если покопаться, то можно дофига интересного в старых версиях найти (и это с учётом использования адекватного дистрибутива и регулярных обновлений, заметим, что тоже часто на практике игнорируется). Окаменелости разве что пользователи RHEL могут себе позволить.
> ffvp9 почему-то по умолчанию ещё не используется
А может и используется. В хроме не тормозят вебм, а в лисе тормозят.
Как можно сделать webm - шоу? ( по аналогии со слайд-шоу)
Хотелось бы настроить количество повторов webm, после чего должен происходить переход к другой вебмке.
Дело не в железе и не в ОС, а в самой лисе.
Посмотри как себя ведет процесс plugin container.
#ѕревью (отличное от первого кадра)
ffmpeg -i pic.png -c:v vp9 -b:v 0 -crf 15 -pix_fmt +yuv420p -deadline 0 preview.webm -y
#ƒобавление превью
ffmpeg -itsoffset 0.04 -i out.webm -f concat -i files.txt -map 1:v -map 0:a -c copy output.webm -y
#—клеивание c превью, файл txt:
file 'preview.webm'
file 'out.webm'
Почему-то кодировка в файле проебалась, ну да ладно.
Пробовал уже.
>>1405647
Всё, смержили в тестинг: https://hg.mozilla.org/integration/mozilla-inbound/rev/14c82d6b268c
Должны скоро смержить в mozilla-central и в найтли прилететь.
>>1408711
>А может и используется.
Зайди в chrome://media-internals, кликни на URL с видео и посмотри значение поля video_decoder. Если VpxVideoDecoder, то libvpx, очевидно.
Лиса может тормозить и по-другим причинам. Если используется неускоренный видео-вывод, например. Попробуй в фуллскрине может. Какое у видео разрешение-то? Если <=720p, то libvpx точно должен быстро декодить на любом железе.
>>1408718
Можешь сделать zoetrope. Вот пример от одного анончика, на cmd, правда: https://github.com/Kagami/webm.py/wiki/Tips-and-tricks#tiled-maps-of-videos
for f in *.webm; do mpv -fs -loop 5 $f; done
> Если используется неускоренный видео-вывод, например.
А что, лис умеет иначе? Я думал, что в десктопной версии он всегда рендерит в пиксмап в оперативке, который потом натягивает на веб-страницу, и о прикручивании всяких xv, vdpau, va api и прочих ускоренных интерфейсов там вообще речи не идёт.
Через OpenGL можно, например, в том же хроме интерфейс весь через OpenGL рендерится (Aura их).
Всмысле, что я не знаю, как лиса на самом деле рендерит видео, поэтому предложил в фуллскрине попробовать. Может хотя бы фуллскрин они оптимизировали.
>Попробуй в фуллскрине может.
Всё также - тормозят.
>Какое у видео разрешение-то?
Проверял на 720p и выше
gfx.content.azure.backends в skia поставь ололо
Я хз, надо дебажить и исключать одну проблему за другой по очереди. Зайди в about:support, посмотри что там с GPU/WebGL. Попробуй какой-нибудь лёгкое VP8 или Theora видео того же разрешения, чтобы исключить проблему на стороне декодинга. Попробуй в найтли/бете и т.д.
>gfx.content.azure.backends в skia
Лел, но тормозит всё равно.
>Зайди в about:support, посмотри что там с GPU/WebGL
Вроде все неплохо:
Direct2D Enabled: true
DirectWrite Enabled: true (10.0.10240.16430)
GPU Accelerated Windows: 1/1 Direct3D 11 (OMTC)
Supports Hardware H264 Decoding: Yes
WebGL Renderer: Google Inc. -- ANGLE (Intel(R) HD Graphics Family Direct3D11 vs_5_0 ps_5_0)
windowLayerManagerRemote: true
AzureCanvasBackend: direct2d 1.1
AzureContentBackend: direct2d 1.1
AzureFallbackCanvasBackend: cairo
AzureSkiaAccelerated: 0
>VP8 или Theora видео того же разрешения
Попробовал это https://www.youtube.com/watch?v=YQKgBmb2WoU
В лисе есть зависания на 1080p на секунду-две, а вхроме просто просадки фпс.
Надеюсь когда-нибудь они это исправят, а пока есть хром.
libvpx, и оказалось что тестовое видео в vp9. Придется самому конвертировать, куда-то пропали все vp8 example
В найтли уже работает.
yuv444p и 10/12bit им зарепортить что ли.
Вебмки с webvtt треком тоже работают в 41 и 44. Странно, когда они опять успели исправить, недавно только проверял.
тренд не читал
ffmpeg.
WinFF
>libvpx 1.5.0 release soon
>It's been about 6 months since the 1.4.0 release and libvpx has seen substantial improvements to vp9 encoding speed and quality
Чего-то они пиздят. В моих тестах гитовая версия была процентов на 3-5 медленнее, чем релиз 1.4.0. Как на платформе с SSE, так и без них.
Из интересного в новом релизе, пожалуй, VP9E_CONTENT_SCREEN, которая всё ещё в ffmpeg недоступна и про которую на VDD рассказывали. Правда, фиг знает, какая часть этих улучшений из VP10 попадёт в VP9.
Проект ffmpeg состоит из подкомпонент, основные из которых это libavcodec, libavformat, libavfilter, libswscale. Чаще всего их используют через CLI обёртки вроде ffmpeg, ffprobe, ffplay, которые линкуются с данными компонентами, скомпилированными в виде shared библиотек (либо статично). Но в некоторых случаях удобнее подключать библиотеки ffmpeg напрямую. Так работает, например, виндовый ffdshow или LAV Filters по твоей ссылке. Сам ffmpeg, либо его компоненты, очень много где используются, например: https://trac.ffmpeg.org/wiki/Projects Это и все обёртки из шапки этого треда, и xmedia recode, и webm-for-bakas, и все новые телевизоры и даже небо, даже аллах.
>>1410082
setpts фильтр нужен, в прошлом треде посмотри. Запилите уже FAQ в вики кто-нибудь.
Какие браузеры на каких системах и на каких видеокартах потестил? А то, знаешь ли, результаты ведь могут различаться.
От видеокарты и системы это не зависит. Разве что в хромиуме вроде правильно, но он у меня падает на таких здоровых, надо будет поменьше сделать. Да и даже если в одном из браузеров правильно, то ничего не меняет, надо под оба делать одинаково.
Открой сам оба видео из >>1407252 и сделать скриншоты. Оба видео должны быть одинаковыми и как на пикрелейтеде.
>От видеокарты и системы это не зависит
Ты охуенно осведомленный, если знаешь, как устроен видеовывод в разных браузерах (в т.ч. проприетарных) на разных системах. На другой системе может оказаться другая реализация, может быть прямое скармливание потока видеосистеме, а там YUV>RGB конверсией может заняться видеокарта и ты даже не узнаешь, кто поднасрал, пока не переберешь все варианты. Более того, единого стандарта "более стольки-то пикселей - такое то кодирование цветового канала" в принципе не существует, и на вебм-ках с их разбросом в разрешениях это отражается в первую очередь.
>Да и даже если в одном из браузеров правильно, то ничего не меняет, надо под оба делать одинаково.
Если уж у кого-то видео в HD, то кодировать надо по-любому в 709, уж здесь нет никаких противоречий и сомнений насчет стандарта, а кодировать HD в 601 ради того, что у одного анона его любимый браузер коряво воспроизводит видео - бред.
>может быть прямое скармливание потока видеосистеме
Аппаратно декодируют VP9 только Broadwell/Skylake на винде. Не понимаю, что ты тут докапываешься. Ясно дело, что я имею ввиду софтовую реализацию декодера, от видеокарты она зависеть ну никак не может. libvpx на любой системе и любой видеокарты выдаёт везде одинаковые YCbCr фреймы, далее данные преобразуются в RGB в YCbCrImageDataSerializer.cpp, который использует библиотеку из хромиума: https://hg.mozilla.org/mozilla-central/file/97e537f85183/gfx/ycbcr и в которой захардкожены коэффициенты BT.601 (вон они даже ссылаются https://chromium.googlesource.com/chromium/src.git/+/e50ca3edbcb0bb0ff6e0519597988700a827c23f/media/base/yuv_convert.cc#10 на пейпер http://lestourtereaux.free.fr/papers/data/yuvrgb.pdf в котором в сноске на 2-ой странице чёрным по белому указано, что расчёты актуальны для SDTV только). Если на какой платформе значения пикселей после конвертации и будут другими, то это баг.
>Более того, единого стандарта "более стольки-то пикселей - такое то кодирование цветового канала" в принципе не существует
Как не существует? Я в треде уже кучу раз писал про эвристики, которые используют многие плееры. Если файл HD, то с большой вероятностью он либо с HDTV, либо с бурурея, а там всегда BT.709. Апскейлы и прочие извраты картину портят, конечно, но это всё же редкость. Причём, это проблема не релизера, а твоя, т.к. тебе нужно угадать какая матрица была в оригинале. Соответственно, задача автора webm сделать так, чтобы и в браузерах всё выглядело правильно.
>а кодировать HD в 601 ради того
А в чём проблема? У фреймов VP9 можно проставить тег цветового пространства. Все вменяемые проигрыватели (браузеры в их число не входят) их понимают. И не забывай, что то же превью как минимум на двух разных бордах (а наверняка и всех) при использовании BT.709 будет неправильными.
>у одного анона его любимый браузер коряво воспроизводит видео
Давай может ты сделать скриншоты, а мы посмотрим, как разные системы влияют? Толку от твоих теоретизирований?
>может быть прямое скармливание потока видеосистеме
Аппаратно декодируют VP9 только Broadwell/Skylake на винде. Не понимаю, что ты тут докапываешься. Ясно дело, что я имею ввиду софтовую реализацию декодера, от видеокарты она зависеть ну никак не может. libvpx на любой системе и любой видеокарты выдаёт везде одинаковые YCbCr фреймы, далее данные преобразуются в RGB в YCbCrImageDataSerializer.cpp, который использует библиотеку из хромиума: https://hg.mozilla.org/mozilla-central/file/97e537f85183/gfx/ycbcr и в которой захардкожены коэффициенты BT.601 (вон они даже ссылаются https://chromium.googlesource.com/chromium/src.git/+/e50ca3edbcb0bb0ff6e0519597988700a827c23f/media/base/yuv_convert.cc#10 на пейпер http://lestourtereaux.free.fr/papers/data/yuvrgb.pdf в котором в сноске на 2-ой странице чёрным по белому указано, что расчёты актуальны для SDTV только). Если на какой платформе значения пикселей после конвертации и будут другими, то это баг.
>Более того, единого стандарта "более стольки-то пикселей - такое то кодирование цветового канала" в принципе не существует
Как не существует? Я в треде уже кучу раз писал про эвристики, которые используют многие плееры. Если файл HD, то с большой вероятностью он либо с HDTV, либо с бурурея, а там всегда BT.709. Апскейлы и прочие извраты картину портят, конечно, но это всё же редкость. Причём, это проблема не релизера, а твоя, т.к. тебе нужно угадать какая матрица была в оригинале. Соответственно, задача автора webm сделать так, чтобы и в браузерах всё выглядело правильно.
>а кодировать HD в 601 ради того
А в чём проблема? У фреймов VP9 можно проставить тег цветового пространства. Все вменяемые проигрыватели (браузеры в их число не входят) их понимают. И не забывай, что то же превью как минимум на двух разных бордах (а наверняка и всех) при использовании BT.709 будет неправильными.
>у одного анона его любимый браузер коряво воспроизводит видео
Давай может ты сделать скриншоты, а мы посмотрим, как разные системы влияют? Толку от твоих теоретизирований?
Ну и ладно бы там HD→HD. Так ведь скейлинг HD→SD, как это часто бывает, даёт неправильный результат вообще везде.
>Ясно дело, что я имею ввиду софтовую реализацию декодера, от видеокарты она зависеть ну никак не может. libvpx
Да почему ты так уверен-то? Могут взять, да направить поток на системный медиафреймворк, это было бы самым рациональным решением. Тут https://en.wikipedia.org/wiki/HTML5_video#Browser_support этот вариант вообще как будто дефолтный преподносят, хотя это может быть устаревшая информация. Собственно, декодинг видео нам не важно где произведен, аппаратно или программно, даже программно декодированные YUV кадры рациональнее всего посылать на VMR/EVR/рандомнойсистемыотрисовщик/, а тот, соответственно, может делегировать конверсию в RGB драйверу видеокарты, а там уж как бог на душу пошлет, так и отконвертирует, и уж точно беспардонно насрет на все теги (их вообще кроме madVR на винде кто-нибудь почитает?). Вот такого подхода и стоит ожидать, по крайней мере, от браузеров Майкрософта и Эппл.
>Я в треде уже кучу раз писал про эвристики, которые используют многие плееры
Эвристика сводится к упованию, что отрисовщик и драйвер не обосрутся, а я лично видел, как релизы 848х480 рисовались то в 601, то в 709 в зависимости от версии драйвера Nvidia, и ведь тут даже предъяв не может быть: стандарта нет, на тэги отрисовка у большинства юзеров обычно срет, да даже кодеры в релизах, сейчас проверил, даже утянутый с баки "лучший" релиз одного бдрипа от сраных coalgirls - тэга не имеет, только половина из оказавшихся на винте нескольких бдрипов имеют тэг, а с твшками все наверняка будет еще печальнее.
>Давай может ты сделать скриншоты, а мы посмотрим, как разные системы влияют
Пока под рукой только хром и лиса на XP, результаты как и у тебя - лиса обосралась, хром молодец, а значит ничего городить с подгонкой стандартов не нужно. Хотя и тут фиг знает, вдруг хром все гонит в 709, нужно же проверять и SD.
>Да почему ты так уверен-то? Могут взять, да направить поток на системный медиафреймворк
Ну потому что я смотрю в DecoderTraits.cpp и не вижу, чтобы webm в лисе декодировалось чем-то кроме встроенной libvpx. У меня тоже была идея в gstreamer это загнать в >>1408605 но как оказалось фиг там. И у DirectShow тоже меньший приоритет. Разве что на андроиде оно таки через OMX идёт.
>а тот, соответственно, может делегировать конверсию в RGB драйверу видеокарты
Я нашёл только какие-то фигово поддерживаемые расширения GL_SGIX_ycrcb, GL_APPLE_ycbcr_422 и GL_MESA_ycbcr_texture, которые позволяют текстуру в YCbCr формате загрузить (в случае OpenGL). Не похоже, чтобы им активно пользовались, все на шейдерах сами пишут. Да и на них в любом случае спецификация есть, я не знаю откуда у тебя неизвестные берутся. В вышеперечисленных BT.601, как я понял.
>я лично видел, как релизы 848х480 рисовались то в 601, то в 709 в зависимости от версии драйвера Nvidia
Ну так там небось аппаратно декодируемый H.264. Ты попробуй в софтварных реализациях декодеров такое найти.
>на тэги отрисовка у большинства юзеров обычно срет
Значит это плохой и испорченный плеер. Не понимаю зачем к ним апеллировать.
>только половина из оказавшихся на винте нескольких бдрипов имеют тэг
Аналогично, я буквально единичные релизы у себя откопал протегированные. А сейчас BT.2020 появится с 4K, вообще весело будет. Поэтому нужно начинать теггировать все энкоды.
>а значит ничего городить с подгонкой стандартов не нужно
Тогда и -sn ставить не нужно, в стандарте ж есть webvtt трек. И -pix_fmt yuv420p не нужно, фигли хром крэшит таб с абсолютно валидным VP9? А в лисе yuv444p с разводами. Ну дела, ничего не работает, нахуй эти webm!
>>1410492
-vf colormatrix=bt709:bt601 -colorspace bt470bg и всего делов. И везде работает. Как все годами сидят в кривыми цветами в webm и ничего не замечают — я хз. Я вот как начал проверять, так охуел от всего бардака.
>Хотя и тут фиг знает, вдруг хром все гонит в 709
Если оба видео одинаково выглядят, то нет, т.к. правое BT.601.
>Ну дела, ничего не работает, нахуй эти webm!
Надо просто долбить лисоделов этой проблемой, в хроме же вроде норм. Твой вариант сделает нормальные цвета на лисе, но может их поломать на других не-хром браузерах или на мобильных устройствах, и это надо пробовать, а не безосновательно полагать, что их кодят так же как лису.
>Надо просто долбить лисоделов этой проблемой
В случае игнорирования тегов согласен. В случае эвристики по разрешению могут и послать, так что как минимум тег BT.709 на HD надо ставить. Всегда правильно в апстрим долбить, конечно, тут ты прав. У меня штук 5 багов к ним уже накопилось. Просто здоровый апстрим это такая непоротливая махина, что всегда проще вокрэраундом заделать. Да и возни сколько, и когда это задеплоят только. В случае с многодорожечными webm просто повезло выйти сразу на разработчика, поэтому быстро исправили. А обычный баг они фиг знает сколько мариновать будут, у них там десятилетние открытые ишью в багзилле не редкость. Может как-нибудь и зашлю, если не лень будет.
>но может их поломать на других не-хром браузерах или на мобильных устройствах
Есть эвристика по разрешению, но не воспринимает теги? Как-то сомнительно.
Кстати, я тут глянул на свежем релизе Shimoneta от SallySubs и таки тег стоит. И цветовая матрица, и tv levels.
Да, лол, долбить тогда заодно и админов имиджборд, т.к. для превью всегда BT.601 используется. В общем, ты охуеешь делать всё по-нормальному.
>2015г
>борды
А ты не заметил, что концепция борд протухла и все это устарело? Поэтому этим говном серьезно никто не знаимается, на самом деле все протухло и требует принципиальной смены идей.
Проверил — хром без тега HD показывает как BT.601. Теги правильно интерпретирует.
Вот для теста: HD BT.601 с тегом | HD BT.709 с тегом | SD BT.601 без тега | HD BT.709 без тега
Все должны выглядеть одинаково. VP8 всегда BT.601, кстати, тоже надо делать конвертацию, если на входе был BT.709.
В таком расположении плохо заметно просто. По пробелу в просмотрщике изображений сразу в глаза бросается. А на огромных 4K с градиентами вообще косяк очевиден → >>1407252
Средненький Dell на AH-IPS, ещё недостаточно упоролся, чтобы EIZO брать. Есть поддержка аппаратной калибровки через i1Display Pro, но пока заводской профиль sRGB использую, который должен быть более-менее точен. Сраные вебмки, из-за них пришлось новый монитор покупать и упарываться по color management…
Олсо, в структуре YCbCrBuffer у FF, которая содержит данные декодированного кадра, даже поля с цветовым пространством не предусмотрено. Мне интересно посмотреть, как они это фиксить будут.
Самое простое — экспортировать в коллекцию png и импортировать обратно с флагом -loop 1.
Узнаешь фреймрейт и длительность гифки, разбираешь гифку на отдельные картинки, собираешь в вебэмку подстроив фреймрейт под длительность музыки или обрезав мукыку в нужном месте.
http://pastebin.com/VmJ0tFeG
Смотря для чего. См. https://git.videolan.org/?p=ffmpeg.git;a=blob;f=Changelog;h=515d649d85ee2d63aecdc6a384ad552d82329dd8;hb=HEAD
Лето было много фиксов в ffvp9; если версия старая, то будет сегфолтиться на некоторых VP9 видео. Ещё не было поддержки дополнительных профилей VP9 в декодере вообще. Из последнего интересного это улучшения встроенного энкодера AAC. Ну и VP9/Opus сделали дефолтными кодеками для формата WebM, но это так, мелочи.
И libvpx тоже лучше гитовый использовать, в котором декларируют увеличение производительности и качестве для VP9, но в Zeranoe билдах используется релизный 1.4.0.
У меня медиа плеер классик крашится при просмотре моих вебмок.
Делаешь раз:
// ==UserScript==
// @name set webm proto
// @namespace https://2ch.hk/webm-proto
// @include https://2ch.hk/*
// @version 1
// @grant none
// ==/UserScript==
[].forEach.call(document.querySelectorAll("a[href$='.webm']"),function(a){a.protocol="snews"})
Делаешь два:
cat >~/mpv-wrap <<EOF
#!/bin/bash
exec mpv "${1/snews/https}"
EOF
chmod +x ~/mpv-wrap
Кликаешь на webm и устанавливаешь /home/user/mpv-wrap в качестве обработчика протокола snews. Дикий костыль, но идею ты понел. Главное — работает.
Кастомный протокол отдельно регестрировать надо, в FF по крайней мере. Лень было заморачиваться и вфигачил первый попавшийся устаревший.
Посмотри на путь до вебм, а дальше сам догадаешься.
>(ffvp9) [meta] Ship ffpv9 on all desktop platforms
Ну вот, всё понемногу исправляется. Цветовые пространства бы ещё пофиксили.
>Проверил — хром без тега HD показывает как BT.601. Теги правильно интерпретирует.
Таки да: https://chromium.googlesource.com/chromium/src.git/+/31bc5867e1112af8b82d780b47fcb3a6f337a8a0/media/filters/vpx_video_decoder.cc#548
FF, как обычно, соснул.
Но хром тоже на BT.2020 соснёт.
Кстати, интересно что на ютубе у видео нет тегов цветового пространства → вероятно все кроме десктопных плееров отображают их неправильно.
>>1412937
Ха, фф теперь точно соснул: https://chromium.googlesource.com/chromium/src.git/+/7cb4525761b68e41671af9006920d568be3c5405
Я на стабильной версии тестировал, а на 46+ уже починил. Есть и эвристика по разрешению, и BT.709 предпочитается.
Ну что, ффлюбы, как вам с неправильными цветами в видосах на ютубе живётся? :3
У 90% людей мониторы в принципе показывают левые цвета, а ты с браузерами хуйню развел. Будто ты эти вебмки смотришь в браузерах круглые сутки.
Причём здесь вебмки. Половина VP9 (дефолтный формат на ютубе) и софтвартно декодируемых H.264 видео в фаерфоксе отображается неправильно вообще на любом сайте. Хоть вебмка, хоть ютуб, хоть вконтакт. Аргумент дурацкий, неправильные цвета с фиговым монитором в правильные не превратятся. Это косяк и его надо исправлять.
>Assigned To:\tNobody;
>Importance:\t-- normal
А количество голосов vote на что-нибудь влияет?
котики христом аллахом прошу!!! срочно! где скачать autocad без смс и прочей хуйни. я в отчаянии анончик.
Голосуй, хуже не будет.
Я не очень понимаю, ffmpeg не доволен размером видео или что?
Нет. Он недоволен тем, что ты ему в subtitles подсунул. Показывай, что написал.
ffmpeg -i c:/space/1.mkv -ss 11:50 -t 95 -map 0:0 -map 0:6 -c:a libvorbis -vf subtitles=0:7 -pass 1 c:/space/1.webm
Причем когда я первый раз вместо дорожки видео(0:0) случайно написал 0:1(аудио), то он спокойно начал обрабатывать все, а как пофиксил начал выдавать этот эррор
> случайно написал 0:1(аудио)
Потому что проигнорировал -vf, ибо не было видеопотока
У тебя несколько сабов в файле?
Если нет, то напиши:
subtitles='c\:\\space\\1.mkv'
и добавь
-sn
чтобы софтсаба в вебм не было.
ffmpeg -i c:/space/1.mkv -ss 11:50 -t 95 -map 0:0 -map 0:6 -c:a libvorbis -sn -vf subtitles=c:/space/1.mkv -pass 1 c:/space/1.webm
Теперь вот это выпадает:
С таким мне не приходилось иметь дело.
Попробуй сделать
ffmpeg -i c:/space/1.mkv -map 0:7 c:/space/1.ass
Если получится то измени оригинал
на
vf ass='c\:\\space\\1.ass'
>>1413427
Потому что : и \ нужно экранировать с помощью \ смотри внимательней >>1413417
И почему у тебя вообще прямые слеши вместо обратных, ты же на линукс?
Субтитры норм получились, проверил, работают, изменил, но выдает все ту же ошибку, не хочет кушать, ладно, обойдусь без них, спасибо что пытался
Последний совет
в vf ass и vf subititles
нужно указывать не двойные кавычки "", а одинарные ''
КАК
Не хватает только кости вверх подброшенной.
ага
долбоеб вкрутил две видеодорожки туда
Указывание -qmin позволяет существенно (очень существенно) экономить битрейт при кодировании с указанием битрейта, -qmax позволяет избавиться от квадратов, но при этом может сильно выше указанного битрейта получиться, надо подбирать.
Если в лимит заведомо влезает, то лучше, конечно, использовать -b:v 0 -crf ..., но если кодировать по лимиту, то если указать, например, -b:v 300k -qmin 30 -qmax 45 (qmin-qmax надо менять в зависимости от видео, чтобы соответствовало битрейту), то результат будет лучше, чем если просто ставить -b:v 300k.
Ну если кодировать с указанием битрейта не по лимиту, то можно указать, например, -qmin 25 и размер итоговый будет меньше без видимого ухудшения качества.
А что происходит, если указывать -qmin и -qmax с ненулевым битрейтом? У меня они игнорировались вроде как
кодирую через -qmin + -crf + -b:v 0
Если у тебя -b:v 0 и указан -crf, то -qmin не нужен, будет кодироваться с постоянным качеством.
Не совсем, у -crf тоже есть некая свобода действий. Особенно заметно на простых видео — даже очень маленький -crf без -qmax может дать на выходе плохое качество.
Тем временем новый быдлокод: http://pastebin.com/YVgFxi4Z
Нарезка в uncompressed RGB, под впечатлением от http://amvnews.ru/index.php?go=Pages&in=view&id=33
Не тормозит в редакторе + тот же блендер использует BT.601 при конвертации при закидывании YCbCr, что даёт неправильные цвета для большинства видео. Вначале avidemux поставил, но он такое убогое говно, что пользоваться просто невозможно, да и uncompressed из него почему-то не вытащить, только lossless (впрочем, я особо не копался, он просто убог).
Выводи в uncompressed AVI и сжимай затем нормально ffmpeg'ом. Редакторы традиционно не умеют нормально транскодить, да и не их работа как бы.
Оу. То есть это нормальная ситуация? Я думал я просто очень неочень.
Либо указывай директорию полностью, либо сначала переходи в директорию из консоли и указывай имена файлов внутри.
Спасибо
Вот это 32, 31 уже не влезает. Для vp9 такое значение нормально?
30-35 это весьма хорошее качество.
В вики вроде рекомендовали 20, но это излишний расход битрейта, разницу с 30 очень трудно заметить.
Сам смотри же, насколько видео распидорашивает.
Значение 30 я бы назвал умеренным распидорашиванием: если ставить на паузу, то небольшие артефакты можно разглядеть без сравнения с соусом почти всегда.
Я бы сказал, если ставить на паузу и охуенно приближать.
При просмотре на харкаче разницы между 10 и 30 никто не увидит.
От исходника зависит. С большим числом деталей или быстрым движением сразу в квадраты распидорасит. Даже 25 по сравению с 23 уже плохо. Попробуй какой-нибудь parkjoy в -crf 30 и охуеешь. Или, я не знаю, сцену в GIRL когда всё взрывается.
Если -b:v 0 -crf 30, то никаких квадратов не будет.
При большом количестве движения просто битрейта больше сожрет.
Больше похоже на то, что >>1414176 прав. Анимешные опенинги длиной в полторы минуты кодируются примерно с одинаковым crf (около 30).
>никаких квадратов не будет
Релейтед кодировался с -qmin 27 -crf 30. Обрати внимание на воду и увидишь, что квадраты завезли.
особой разницы по качеству с qmin или без я не замечал.
Дай ссылку на исхдник и время.
Более чем уверен, что если правильно кодировать (а не с указанием каких-то левых -qmin 27 и других левых настроек), то такой размытой картинки не будет при -b:v 0 -crf 30 в этом же примере.
>Дай ссылку на исхдник
Вот http://goo.gl/Beh5kj https://goo.gl/pgPfuI Качай OP2 clean, если сможешь. Звук в исходнике возможно будет спешить на 1.5 секунды.
>время
Целый файл
>правильно кодировать
Никаких кволити бест и speed 0/cpu_used 0, я могу себе позволить онли гуд + speed 1.
Звук: libopus -b:a 80k -vbr on -ac 2. В ином случае мне будет неинтересно, что там у тебя получится.
На остальные настройки ограничений нет.
>а не с указанием каких-то левых -qmin 27
Так без жёсткого лимита он может меньше взять, всё правильно.
Вот сложная сцена из GIRL (6:44), с crf30 все детали и контуры размыты нафиг. Скриншоты crf10 и crf30 для сравнения. Хотя квадратов почти нет, мылит в основном. Надо на других типах сцен попробовать, что-нибудь вроде быстрых движений градиентов.
Закодирую, посмотрим.
Ну я всегда со -speed 0 кодирую, но посмотрим и со -speed 1.
Звук роли никакой не играет.
Я серьезно мало представляю, как можно при просмотре этой вебмки различить первый и второй скрины.
А квадратов нет, мыла совсем немного, но на такой скорости оно незаметно в любом случае.
Ну и понятно, что -crf 30 это не лосслес, поэтому разница с оригиналом, конечно, будет.
Но чтобы заметить ее надо специально вглядываться в различия.
Квадраты заметить легко, а то, что тут что-то сгладилось слишком сильно, заметить при просмотре нельзя.
> Звук роли никакой не играет.
Если учесть, что он отнимает от лимита в 20M ~900кб, то можно и без звука вообще.
При просмотри сцены целиком в глаза сразу всё мыло бросается. Кодеки на подобных сценах в режиме VBR уйму битрейта тратят.
Квадраты на воде значительно менее заметны и цветочки без говна.
И битрейт почему-то больше, чем у тебя, так что неправильный у тебя какой-то -crf 30 в той вебм.
Посмотрим еще, что со -speed 0 будет, когда докодируется.
https://2ch.hk/media/src/9670/14439718875060.webm
Нет, обсуждали мы -b:v 0 -crf 30 -speed 1, как я и закодировал, сам все видишь.
Под лимит кодируется с указыванием битрейта, а там уже далеко не -b:v 0 -crf 30.
Ну ладно.
> Под лимит кодируется с указыванием битрейта
Я уже пару месяцев не кодирую через битрейт, только -crf, иногда с добавлением -qmin -qmax.
>Ты неправильно кодируешь
Может быть, а может и нет.
>последний скрин
Почему ты прописываешь такие дефолты, как auto-alt-ref, lag-in-frames и c:v vp9? Обнови ffmpeg чтоли.
> Почему ты прописываешь такие дефолты
Чтобы при
>Обнови ffmpeg
Ничего не менять и все работало как до обновления.
Хуже от прописывания дефолтов не становится.
>Ты неправильно кодируешь, все, что я могу сказать.
>Может быть, а может и нет.
Этот вопрос может только мамкин модератор решить, видать в универе на факультете пердоления ffmpeg учится, так что выложи исходники видоса, параметры кодирования и жди его решения о том правильно или нет ты всё делаешь
> — ролики с opus'ом в firefox зацикливаются не с начала, а с последнего ключевого кадра.
С недавних пор зацикливается нормально. Конкретно на текущей 41.0.1 точно как надо.
-speed 0 сэкономил 461 килобайт, то есть примерно 7% битрейта при том же качестве картинки.
https://2ch.hk/media/src/9670/14439743185370.webm
>использовал же <…> и немного blender.
А какие форматы с ним использовал на входе и выходе? Я вот не понимаю — то ли я криворкий, то ли действительно всё так через жопу сделано, но при скармливании ему YUV клипов (любой обычный исходник), используются только BT.601 коэффициенты. В настройках ничего похожего не нашёл, в гугле только какой-то дохлый патч и всё. Если рендерить этот отредактированный YUV в AVI Raw, то цвета все поедут, разумеется. Если отрендерить в H.264 Lossless YUV, то цвета вроде на месте (т.к. при обратной конвертации та же матрица используется), но какого-то хуя картинка мылится. Декодер H.264 там кривой какой-то что ли.
Пока ничего лучше не придумал, кроме как работать только с uncompressed RGB. Единственное, что больше 8бит на цвет AVI не поддерживает. Можно с помощью 16-битных PNG обойти, но они медленее сохраняются/обрабатываются.
Здесь хорошо разбираются в ffmpeg, поэтому вопрос вне webm.
Нужно перекодировать flac в lame mp3.
https://ffmpeg.org/ffmpeg-all.html#libmp3lame-1
Это все доступные опции lame? Ему нельзя скармливать те опции, которые есть в обычном lame (типа --noreplaygain)?
Видимо, не стали добавлять, т.к. у фильтра volume есть своя реализация replaygain: https://ffmpeg.org/ffmpeg-all.html#volume
По умолчанию в библиотеке он выключен: https://github.com/rbrito/lame/blob/7d3e1a652281952f20c7e11806aef3f837f9b51d/include/lame.h#L295
Если нужна реализация именно из LAME, то сэнкоди ей отдельно, потом этот трек в FFmpeg используй. UNIX-way же.
Антонус, у меня пара вопросов, вебм рилейтед:
Есть один premiere pro и свои смехохуечки отснятые с андроида.
Но вот беда примьера не дружит с вебм и, с алсо, половиной порно.flv'шек с интернета. Что плохо т.к. хочеться пиздить от туда контент.
Вопрос во что мне такое ффмпегом конвертнуть так что бы максимум быстро и без потерь, что потом мог бы импортнуть в premiere pro? На размер похуй.
Второе, алсо, есть один диск блу рей, чем его рипнуть со снятием зашит и всего такого. Помню давно делал это в AnyDVD HD. Но может за время появилось что швабодное или не настолько мокрописечное?
>Вопрос во что мне такое ффмпегом конвертнуть так что бы максимум быстро и без потерь, что потом мог бы импортнуть в premiere pro? На размер похуй.
Uncompressed AVI RGB. Вот статья как раз целиком про это: http://amvnews.ru/index.php?go=Pages&in=view&id=33
Отсос только если надо >8бит. Самое простое, по идее, через пнгшки в таком случае.
Кстати, это справедливо вообще для любого видео-редактора, даже если формат исходного видео поддерживается. См., например, >>1414649 Косяки с неправильными цветовыми пространствами YUV, тормоза, странные артефакты. Да и редакторы, как я понимаю, только в RGB оперируют со всеми эффектами и цветом.
Если целевые клипы короткие, то вообще никаких проблем с занимаемым пространством нет. Купить 2 2TB винта, в RAID0 их и всю нарезку туда. Если винт отвалится, то пофиг вообще, ничего кроме временных непожатых фрагментов там не хранить.
А смысл?
1. Не умеет >8бит (ффмпеговский вариант ffvhuv плохо поддерживается).
2. Тормознее несжатого, а места не так уж и много экономит.
3. Твоя команда даст на выходе YUV, который не желателен.
4. Самое главное: не поддерживает сабсэмплинг выше 4:2:2 при использовании YUV, значит как раз-таки есть шанс похерить цвета.
>>1414740
>цвета херит
Ты думаешь редактор в YUV работает при накладывании эффектов? Преобразование цветового пространства в любом случае будет и поэтому надо сделать это правильно заранее. Вначале сабсэмплинг осиль.
>Adobe After Effects
https://helpx.adobe.com/after-effects/using/color-basics.html#color_models_and_color_spaces
http://www.dvxuser.com/V6/showthread.php?9760-Render-in-RGB-or-YUV-difference-MB-probs
Внутренне использует RGB, фильтры работают в RGB. При любой обработке видео будут преобразования цветового пространства. А то, что ты потенциально проебал половину цветовой информации на дискретизации и цвета на популярных 10-битных релизах, тебя почему-то не волнует.
>>1414743
Ты понимаешь о чём вообще говоришь? Какое-то бессвязный набор баззвордов. H.264, в отличии от HuffYUV, и 4:4:4 поддерживает, и 10 бит умеет. Я уже не говорю о том, что работать с пожатым видео в редакторе — это идиотизм.
>Работает он в YUV, не все эффекты правда
Это интересно, похоже действительно возможно без конвертации: https://forums.adobe.com/thread/825920
Они, впрочем, неточности нивелируют использованием 32bpp, как я понял. А какое процентное соотношение между эффектами с YUV пометкой и без? Что-то нигде не указано.
Если есть возможность работать только в YUV на всех этапах, то так лучше, конечно. Можно использовать yuv444p16 с Y4M, FFV1 и FFVHUFF, если их AE поддерживает. Или yuv444p10 H.264 lossless в крайнем случае. Вообще странно, что так мало >8битных форматов без потерь.
>написанной в майкрософте
Наркоман? Я уже не говорю о том, что ты даже нужный модуль найти не в состоянии.
>с помощью пиздатых пипиетарных мокрописек
В AE своя особая математика? Запатентовали хоть?
>оптимизирующих цвета
Ну давай посравниваем. Вот тебе оригинал RGB 8бит и скриншот с YUV 4:4:4 BT.709 limited range 8бит, сделанного с помощью ffmpeg одной командой. Покажи мощь проприетарных мокрописек на бандинге.
>как не снилось обосанным пердоликам
Чем ты гордишься-то вообще? Ты ж наверняка даже AE в аренду не взял. Типо здесь все такие тупые и никто кроме тебя не осилил зайти на трекер и скачать сборочку от васяна с кряком?
>Надо просто долбить лисоделов этой проблемой
>Yeah, that looks to be the problem.
>In general our handling of different colourspaces is pretty bad.
>We'll need to fix that library to support both (or find/make a replacement), and then wire it up so that we use it correctly.
>UNCONFIRMED
Через 4 дня. Всем похуй. Тем временем, большая часть новых видосов на любом сайте продолжает отображаться неправильно.
Вообще, там есть потери, но не такие значительные и можно использовать больший bpp на выходе/dithering для уменьшения ошибок округления/артефактов.
>чтоб сделать пикрилейтед из RGB картинки
Это да, там дофига подводных камней → >>1397217
И это ещё я не до конца осилил гамму и гамут. Может быть ещё веселее.
>Самое простое, по идее, через пнгшки в таком случае.
Внезапно: OpenEXR охуенен. Компиляем ImageMagick с --enable-hdri и --wth-openexr, используем офигенный VapourSynth:
import vapoursynth as vs
core = vs.get_core()
c = core.ffms2.Source("in.mkv")[0]
c = core.fmtc.resample(c, css="444")
c = core.fmtc.bitdepth(c, bits=32)
c = core.fmtc.matrix(c, mat="709", col_fam=vs.RGB)
c = core.imwri.Write(c, "EXR", "out%06d.exr")
c.set_output()
и получаем 16-битные RGB с плаващей точкей из YUV с минимальной погрешностью. Жаль, что в imwri пока нет поддержки quantum-depth=32, но зато fmtconv с 32bit float отлично работает. В блендере internal working space тоже RGBS, как я понял.
В первом проходе время не пишется. На frame смотри. Примерное общее количество кадров можешь узнать через fpsduration (оба значения отображаются в первых строчках вывода). Процент выполнения: frame/total_frames100. Общий прогресс ≈ pass1percent/2.5, т.к. первый проход чуть быстрее.
Я ебал разметку.
>Примерное общее количество кадров можешь узнать через fps×duration (оба значения отображаются в первых строчках вывода). Процент выполнения: frame/total_frames×100.
- treads 8 -speed 1 -frame-parallel 1 будет 7-10fps хуяриться даже на деревянном двухядернике, -speed 0 раза в 2 медленней
Да пох как оно пишется, все поняли о чем идет речь.
Зависит от длины видео же. Сейчас засёк, 1:36 на 29 секунд видео.
Тем временем предварительные результаты с MSU. Лучшая реализация хвалёного HEVC всего лишь на 3% лучше открыто-швободного VP9.
>>1415615
Лол, настолько охуенный энкодер, что даже в табличку не влезло. Я с таким же успехом могу в rawvideo с 9000fps энкодить. Ну да ладно, мы подождём пару дней до релиза полного обзора, чтобы не было обидно за пердолей.
Как нет? А интелловский? А иттиам? В описании указано, что они в основном GPU энкодеры и оценивали. Тестировали и nvidia, просто в предварительных результатах нет почему-то, видимо всё совсем плохо. Одно ясно — nvenc соснул у x265 с проглотом, сколько бы дутых fps у тебя там не отображалось.
>пока господин не изволит собрать пакет
Генту-господа пожали плечами, скопировали ебилд в локальный оверлей, добавили ключик и привычно скомандовали emerge. Это тебе не cygwin в убогой консоли пердолить, рискуя словить ошибку компиляции из-за отличающейся среды.
>>1415632
Ну так считай SSIM, строй графики сам, если хочешь, чтобы эту поделку кто-то серьёзно воспринимал. А обычным людям достаточно сравнения от специалистов, которые показывают, что HEVC, в общем-то, провален, даже в лучшей реализации.
На минуточку, «x265 на 3% лучше libvpx-vp9» означает, что VP10 уже делает HEVC.
avconv -i video.mp4 -vf scale=-1:240 -c:v vp8 -b:v 1.8M -c:a libvorbis video.webm
avconv там - это имя бинарника ffmpeg. Результурующий webm файл получается меньше 7Mb. При попытке запостить получаю сообщение файл слишком большой. До этого пробовал постить тот же файл, меньше пожатый 26, 18 и 9Mb. Всегда одна и та же ошибка. Что я делаю не так?
Длительность 37 секунд (мало ли в ней дело)
Спасибо, анон, сделал < 6м, всё запостилось!
1. Чё ему не так?
2. Почему сука констант бит рейт, я же пишу -vbr 3?
Вероятно, ты выбрал не самый лучший энкодер. Попробуй libfdk_aac.
Крупшейние видеохостинги вроде ютуба используют WebM в качестве основного формата хранения и распространения видео. Доброе утро.
#!/bin/sh
palette="/tmp/palette.png"
filters="fps=15,scale=320:-1:flags=lanczos"
ffmpeg -v warning -i $1 -vf "$filters,palettegen" -y $palette
ffmpeg -v warning -i $1 -i $palette -lavfi "$filters [x]; [x][1:v] paletteuse" -y $2
это охуительно и оно работает, но вот palette.png получается килобайт с несколькими квадратами, и итоговая гифка 3 секунды - 5мб при 10фпс.
А ты как хотел?
Вот здесь есть некоторые советы по уменьшению размера/увеличению качества: http://blog.pkh.me/p/21-high-quality-gif-with-ffmpeg.html
Ну и уменьшай разрешение и fps. В аниме, например, реальный fps=8, часто можно до 5 уменьшить безболезненно.
Какими аппаратными, если таких в природе не существует? Netflix говорят тоже на обычных CPU энкодит, например.
Поэтому в метаданных его вебмок указано:
> Writing application : Lavf55.48.100
> Writing library : Lavf55.48.100
Но это же для потокового кодирования в реальном времени. То, что libvpx при таком использовании сосёт из-за скорости, ни для кого не секрет.
Покажи лучше железяку, которая обойдёт по качеству libvpx в двухпроходном режиме (а не по соотношению скорость/качество, которое вряд ли для ютуба сильно роляет).
А ты с хакерньюз/реддита? Нашёл чем гордиться. Люди, интересующиеся темой, берут новости из мэйллистов и чатов с разработчиками.
Интересно, не знал. Только вот он как бы совсем не для VOD, это для real-time. Попробуй читать ссылки перед тем, как их постить.
>>1417530
Это что за такой вид троллинга винить пердоликов (кто это вообще в твоей классификации?) за низкое качество аппаратных энкодеров?
>ты не понимаешь суть железяк и их предназначение
Нет ты. Вопрос был в том, что использует ютуб для энкодинга. Ответ: libvpx. Это, как бы, очевидно.
В новых VP9, кстати:
>| + Muxing application: google
>| + Writing application: google
Касательно настроек, там по всей логике CQ должен быть. Может в этом треде более точная информация есть:
http://forum.doom9.org/showthread.php?t=170682
Я ебал этот дебилизм, когда пост не отправляется из-за слова в спамлисте, а какое именно слово — не говорится.
ffmpeg -i 1234.mkv -i video.webm -map 0:a -c:a libopus -b:a 64k -map 1:v -c:v copy out.webm
Жирным выделен аудиоканал у исходника? Как мне взять из матрешки 4-ую дорожку (Stream #0:4)?
Это пятая дорожка, лел.
Пиши -map 0:4
И пиши map с видеодорожкой перед map с аудио, чтобы лишних проблем не было:
-map 1:v -map 0:4
-vbr on еще добавь, чтобы opus был с переменным битрейтом - так звук лучше будет.
Да, я уже разобрался. Но теперь другая проблема: вытаскиваются все 25 минут звука, не догоняю как вырезать нужный участок и запихать их в webm. Создавать отдельный аудиофайл, а потом склеивать?
То есть нельзя сделать что-то вроде -ss 00:05 -i 1234.mkv -t 15 -i blabla.webm -map 0:4 -c:a libopus -b:a 64k -map 1:v -c:v copy out.webm?
Благодарю.
Что именно нужно дописать чтоб добавить выделенные сабы в вырезанный отрывок (они идут 4 потоком как я понял)?
ffmpeg -i "C:\koko.mkv" -ss 00:16:00 -to 00:16:30 -vcodec vp9 -b:v 1200k -acodec libopus -b:a 256k -map 0:0 -map 0:2 -vf subtitles c:\inaba.webm -fs 10240k
ffmpeg -i "C:\koko.mkv" -ss 00:16:00 -to 00:16:30 -vcodec vp9 -b:v 1200k -acodec libopus -b:a 256k -map 0:0 -map 0:2 -vf "subtitles=C\\:/kokoko.mkv:si=1" c:\inaba.webm -fs 10240k
Можно ещё -ss перед -i для ускорения, тогда надо будет setpts перед subtitles ещё добавить.
Они идут 5-м потоком, который под номером 4
Ну я бы сделал так:
ffmpeg -i "C:\koko.mkv" -map 0:4 C:\koko.ass
ffmpeg -i "C:\koko.mkv" -ss 00:16:00 -to 00:16:30 -c:v vp9 -b:v 1200k -c:a libopus -b:a 256k -map 0:0 -map 0:2 -vf ass='C\:\\koko.mkv' -sn -y -an -pass 1 c:\inaba.webm
ffmpeg -i "C:\koko.mkv" -ss 00:16:00 -to 00:16:30 -c:v vp9 -b:v 1200k -c:a libopus -b:a 256k -map 0:0 -map 0:2 -vf ass='C\:\\koko.mkv' -sn -y -pass 2 c:\inaba.webm
Так встроенные шрифты не будут использоваться.
Получилось, спасибо.
А где именно в этом отрезке происходит выбор дорожки субтитров -vf "subtitles=C\\:/kokoko.mkv:si=1"?
si же, читай ман. Кстати, ссу на ValdikSS, который додумался сделать индекс субтитров относительным, а не абсолютным номером стрима.
Благодарю.
Я хуею просто и у меня неимоверно печет.
Чтобы сделать сраное видео нужно блядь заниматься таким пердолингом, но я не собираюсь становится ПОГРОМИСТОМ и вообще даже вникать в эту муть. Уже перекачал с десяток программ, все какие-то ЗАУМНЫЕ пиздец, питоны, скрипты, хуитоны.. вы охуели блядь?? Это блядь ВИДЕО!!! Я вам не пентагон тут взламавать собираюсь!!! СУУУКИ!!!
И главное, все сраные видеоредакторы тоже отказываются конвентировать, ну что за скотство?
Есть же наверняка какой-то вариант без пердолинга? или хотите сказать школьники из бэ вот это вот все дрочат, клепая свои высеры?
Неужели тебе трудно скопировать один файл в какую-нибудь папку и создать батник с двумя строчками в этой же папке?
У меня аллергия на консоли.
Да и как я в ней укажу точный тайминг обрезки, чтобы прям кадр в кадр?
Я скачал какой-то webm conveter, вот там все годно, по кадрам можно быстро отметить начало и конец, но он почему-то нихрена не сохраняет, а пишет следующее: ffmpeg.exe exited with exit code 1.
Ввести команду в консоль это даже не уровень программиста-8миклассника, ведь программа уже написана за тебя.
>Это блядь ВИДЕО!!!
Вот именно. Люди выдрачивают фильтры AviSynth, а то и свои пишут, оптимизируя под конкретную архитектуру до последнего такта. И о x264 ключах в многосотстраничных темах срутся. А тут какой-то быдлан решил, что это всё можно свести до нажатия одной кнопки в гуёвине.
>хотите сказать школьники из бэ вот это вот все дрочат, клепая свои высеры
Именно. Изучай ffmpeg - это стильно, модно, молодежно. Он тебе всегда пригодится.
Разве что в твоих влажных фантазия.
Если бы абдуль был бы не корявой обезьяной и впилил бы поддержку h264 который сраным вебм ссал на рот, двачаю двач бы стал самым популярным видеохостингом рунета ибо нормальные кодеры уже давно обходятся двумя кнопками битрейт видио\качество аудио. А так нормальный человек с этим вашим вебм и фмпегом возиться не будет. Что мы и видим, в бэ треды с одни и теми же вебм месяцами.
Но пердодибилы, как и бюрократы, любят превращать в работу то что ей не являеться и создавать себе проблемы на ровном месте.
>Он тебе всегда пригодится.
Гдеж он мне блять пригодиться то а? О нем блять и не услышал если бы не двачепомойка.
Пруф или проект без лидера и с неясным будущем, попирающий diversity и не проводящий программ по привлечению женщин и трансов к разработке. Настоящие SJW выбирают libav! Встречайте во всех дистрибутивах Linux ToleranUX.
>>1419383
Вембрелейтед. Подобное беспощное кукареканье уже столько раз разбиралось, в том числе в этом треде, что даже нечего добавить. Но ты, конечно, можешь воображать, как нам всем тут суть вещей показал.
У меня для тебя плохие новости. Так с любой хуйней, в которой ты хочешь преуспеть. NO PAIN, NO GAIN
>О нем блять и не услышал если бы не двачепомойка.
Зато уже четвёртый год смотришь его на Ютубе, лол.
>двачаю двач бы стал самым популярным видеохостингом рунета
>видеохостинг
ты совсем чтоли ебнутый, тупая мартышка? Кто ж ему даст столько ресурсов, гения ты инторнета? Абу всего лишь мелкая шавкапросто микроб среди господ видео-порнодельцов.
Ну вот есть видео формата 1280х720, надо обрезать 150 слева и 154 справа (точные цифры знаю из ковыряния через гуёвину). Как?
Я что-то затупил и ковырял не в том направлении, а оказалось всё проще. Спасибо.
MPC-HC крашится при попытке воспроизвести webm, что делать?
Делюсь ссылкой на скрипт для скачивания всех webm треда пока только для /b/ раздела:
http://ad-file.com/7ttjC8zMr
Можете добавить в шапку треда.
Сделай скрипт для скачивания всего треда с полноразмерными картинками и вебэмками. Чтоб было удобно сохранять интересные треды.
Лол, да ты охуел брать деньги за кривую версию wget -r -nd -I '∗/src' -A '∗.webm' -e robots=off, да ещё и без исходников GNU-утилит.
Пошёл писать Штуллману на gpl-violations.
>>1419736
Также однострочник на wget с опцией -k, сто лет как уже всё написано, я ещё на викентивскем двоще так треды сохранял. Это всё не очень пригодно, потому что ебанутый абу кладёт статику под защиту от дидоса, в результате чего простые UserAgent, не умеющие JavaScript, периодически получают 503. У меня вот сейчас два совершенно валидных IP блочатся, а постить так вообще теперь только с русского можно.
Есть же браузерные расширения для этого вроде DownThemAll и т.д.
А, нет, есть вокрэраунд оказывается. Надо cf_clearance и правильный юзерагент поставить. Вот так работает:
wget -r -nd -I '∗/src/∗' -A '∗.webm' -e robots=off -U '<value>' --header 'Cookie: cf_clearance=<value>' <thread_url>
Нужные значения из вкладки Network по F12 можно достать. Юзерагент должен в точности совпадать, просто Mozilla/5.0 не катит. И звёздочки заменить на нормальные.
https://github.com/pituz/webm-thread/blob/master/tools/add-preview
Я с трудом понимаю отдельные куски.
Never stop watching WebM threads from 2ch.hk.
This script searches for WebM threads on a popular Russian imageboard 2ch.hk (formely 2ch.so, sosuch) and plays all the video files found. Usual porn and child porn, John Sena, Everybody knows shit's fucked, † CΛIN † - ama ama ama, Primo Victoria spinnings, kokovin93, Imya 505, Alexander Pistoletov, Green Elephant, My Little Pony, Korean PVs and MVs now on your desktop, endlessly! All played files could be saved in a directory.
https://github.com/ValdikSS/endless-sosuch
Ага, спасибо. Я это вроде всё даже в анимублядском треде видел, но начисто забыл.
Вот так можно в mpv играть, когда защита включена (можно даже в конфиг добавить):
mpv --user-agent '<value>' --http-header-fields 'Cookie: cf_clearance=<value>' <url>
Вот так можно из профиля лисы текущую куку достать (можно поставить, чтобы по крону меняло соответствующее значение в конфиге mpv):
sqlite3 ~/.mozilla/firefox/∗.default/cookies.sqlite 'SELECT value FROM moz_cookies WHERE baseDomain="2ch.hk" AND name="cf_clearance"'
Если vlc plugin читает конфиг VLC, то можно и его заставить правильный user agent/куку посылать. Лень проверять, NPAPI в любом случае не нужен.
Вот с этого специалиста по безопасности проиграл: https://trac.videolan.org/vlc/ticket/56#comment:11
>>1419814
>gstreamer
Ну ты понел. Почему не скрипт на Lua к mpv с нормальным управлением и декодерами? Или даже впилить поддержку в youtube-dl, mpv подхватит автоматом.
Олсо, почему не залил на PYPI с проставленными зависимостями, чтобы устанавливать одной командой нормальный симлинк в PATH, как все нормальные пацаны делают? И сборочку через py2exe для вендузятников.
>Почему не скрипт на Lua к mpv с нормальным управлением и декодерами?
Dunno, не думал, было бы неплохо. Можно и реализовать.
>Олсо, почему не залил на PYPI с проставленными зависимостями, чтобы устанавливать одной командой нормальный симлинк в PATH, как все нормальные пацаны делают? И сборочку через py2exe для вендузятников.
Не успел, будет.
Почему папки images и makaba не грузятся?
Звёздочек, скорее всего, не хватает. Вот так криво, зато проще:
mkdir saved-thread && cd saved-thread
wget -nd -c -r -I '∗/src/∗' <url>
wget -nd -c -p -k <url>
sed -i 's# href="http[^"]∗/src/[^"]∗/# href="#g' ∗.html
Вот это круто. Наконец-то ffmpeg починили.
Исправляет ссылки на полные версии изображений, которые были скачаны первым вгетом.
> Платина наверное, но у меня в вебмках нет звука. Вообще ни в каких. Что надо сделать?
Бамп вопросу.
Если у тебя во всех вебм нет звука, то может стоит начать с себя? Давно у ЛОРа был? Долго на форчане сидел?
В видео с ютуба звук есть, в игорах тоже, на форчанах не сидел
404 /builds/win64/static/ffmpeg-20151011-git-f05ff05-win64-static.7z Not found
Если прога наберет 100 рублей, перепишу через busybox. Если 500 руб. наберет, то сделаю и для других разделов. А для тебя и с картинками и с webm контентом.
Нужно мотивировать разработчиков.
Сосни хуйцы
Чот в шепот с мамкиного предпринимателя.
http://ad-file.com/8MvFlfGWg
Добавил busybox. Но sed там кривой.
>но пока никак не осилю регэкспы в sed
Они там очень фиговые. В GNU sed есть ключик -r, который немного помогает, будет что-то на уровне греповского ERE. Но до нормального PCRE всё равно не дотягивает.
Бля. Думал воровать фрапс с кучей нинужных фич, чтобы писать реплеи танчиков, а тут так всё просто. Сукпздц. (((
Инструкция:
Содержимое архива закинуть в любую PATH-папку.
Лучше работать через тотал коммандер - там внизу есть удобная консолька.
Чтобы скачать тред целиком, создашь для него папку, заходишь в нее и пишешь в консольку: 2ch-dl https://2ch.hk/доска/res/тред.html
Чтобы скочать только картинки-вебэмки, создашь для них папку, заходишь в нее и пишешь в консольку: 2ch-mm https://2ch.hk/доска/res/тред.html
Советы по улучшению говноскрипта приветствуются.
Статьи Monty отсюда https://xiph.org/~xiphmont/demo/
особенно по Daala,
это https://xiph.org/~xiphmont/demo/neil-young.html
это https://xiph.org/video/vid1.shtml
и это https://xiph.org/video/vid2.shtml
(У него в ЖЖ ещё бывает интересно - http://xiphmont.livejournal.com/ )
Все презентации и слайды по Daala:
https://wiki.xiph.org/Daala#Presentations
Тамже см. ссылку на записи и слайды NetVC WG с прошлого IETF.
Презентация VP9 от гугля:
https://www.youtube.com/watch?v=K6JshvblIcM
Хорошая книга по H.264:
https://books.google.com/books?id=k7nOAiIUo9IC
Доки по Dirac:
http://dirac.sourceforge.net/documentation/algorithm/algorithm/toc.htm
Большинство современных кодеков работают почти одинаково.
Статейки по VP9/HEVC:
https://www.academia.edu/5893478/Intra_Compression_Efficiency_in_VP9_and_HEVC
http://forum.doom9.org/showthread.php?t=168947
http://files.meetup.com/9842252/Overview-VP9.pdf
https://www.ietf.org/proceedings/85/slides/slides-85-videocodec-4.pdf
А сами на конференциях просят не выходить за рамки одобренного SJW новояза: https://www.youtube.com/watch?v=fgeZkIfIxqs&t=2m55s
Я фигею с лицемерия западных товарищей белой расы. И всё с чистой совестью! То, что их показушная политкорректность может являться оскорбительной для жителей третьего мира, господ феминистов не волнует:
https://bugzilla.mozilla.org/show_bug.cgi?id=366559#c165
https://fr.surveymonkey.com/r/QCP7JSS
А где ты лицемерие увидел? На канале они сами себе хозяева, а конфа — публичное мероприятие. У пидарков-неженок нормальная практика отказ от посещения только потому, что в правилах не упомянут какой-нибудь пидорский Code of Conduct. Вот и приходится подстраиваться.
Пиздец просто, ёбаный петушиный барак.
В этом-то и дело. Тогда не ставил, было заебись, в этот раз не ставил, ебаные квадраты.
Нормально.
Используй crf, что ты как этот.
Обновление.
http://rghost.ru/8mjjTDXGV
Теперь все функции в одном скрипте.
2ch-dl https://2ch.hk/доска/res/тред.html - загружает весь тред полностью в пригодном для оффлайнового чтения виде вместе с полноразмерными картинками и вебмками,
2ch-dl -m https://2ch.hk/доска/res/тред.html - загружает все картинки и вебмки треда,
2ch-dl -i https://2ch.hk/доска/res/тред.html - загружает только картинки,
2ch-dl -w https://2ch.hk/доска/res/тред.html - загружает только вебмки,
2ch-dl -h - инструкция.
Писал так:
ffmpeg -ss 1:04:35 -i filename.mkv -t 201 -i video.webm -map 0:a -c:a libopus -t -201 -b:a 64k -map 1:v -c:v copy out.webm
И вот то, что выделил вероятнее всего неправильно. Либо стоит в неправильном месте, либо параметр неверен.
Подскажите как совместить звук из фильма и видео из обрезка. Спасибо.
А, не сказал. На выходе получается вебм-ка длинна видеодорожки которой составляет 201 секунду (ну естественно, видео же обрезанное), а аудиодорожка с момента 1:04:35 до конца фильма (~13 минут). Т.е. нужно указать конечное время аудиофайла.
А не проще сразу все сделать? Я до сих пор не понимаю сокральный смысл соединять видео со звуком отдельно.
test
Не думай, что я понимаю, что я делаю и о чём ты говоришь. Скопировать пару строк в терминал не есть понимание происходящего.
Ну попробую читнуть гайдец из первого поста, может там написано как сразу со звуком делать.
ffmpeg -ss время -i файл -to время параметры видео -an -sn pass 1 -f webm NULL
ffmpeg -ss время -i файл -to время параметры видео -c:a opus параметры аудио -sn pass 2 -f webm имя.webm
Как-то так.
Чето я как даун-аутист, анон.
Запускаю твою поделку, не из ТК, а просто из консолечки, скрипт начинает работать и консолечка схлопывается. Как логи-то глянуть?
>консолечка схлопывается
Это потому что я не указал /b везде после exit
Исправлено.
http://rghost.ru/6MjWDtDVB
Да это один из вариантов который я пробовал, видимо забыл стереть. Я сначала в блокноте пишу потом в соснолечку копирую.
ffmpeg -ss 1:02 -i file.mp4 -t 32 ^
\t-map 0:v -vf "scale=-1:540" -c:v libvpx-vp9 -pix_fmt yuv420p ^
\t-threads 4 -speed 0 -quality good ^
\t-slices 2 -tile-rows 0 -frame-parallel 0 -tile-columns 0 -lag-in-frames 25 -auto-alt-ref 1 -pass 2 ^
\t-qmin 30 -crf 35 -qmax 45 -qcomp 1 -b:v 0 out.webm
Инбифо deadline=0
Я это не смогу обойти, только если ты напишешь сразу в скрипт или подробно расскажешь как обойти. А какие разделы вообще считаются закрытыми?
Моя ошибка. best нигде не всплывал, я почему-то посчитал, что управляется все через speed, а good там дефалтом стоит, я никогда его и не менял.
А ты попробуй поставить best, тебя будут ждать незабываемые часов десять ради пары минут видео.
-aq-mode т.е. У него 4 варианта значения, по умолчанию 0. Теоретически, может как-то улучшить качество.
Есть --tune-content=screen (доступно только через vpxenc), должно помочь в случае скринкастов.
Ну и очевидный sws_flags=lanczos или spline для улучшения качества ресайза вместо дефолтного bicubic. Или ёба ewa_lanczossharp из mpv, ололо.
>>1422300
>А какие разделы вообще считаются закрытыми?
Со всяким непотребством, очевидно.
>как обойти
Я не автор того скрипта, если что. А вообще, взять куку из текущего браузерного профиля (в лисе: «настройки→приватность→show cookies→2ch.hk») и добавить параметр вгету --header 'Cookie: usercode_auth=<value>'
У тебя -t указано перед -i, т.е. для входа. А надо для выхода.
>добавить параметр вгету --header 'Cookie: usercode_auth=<value>'
Сейчас пробовал на герлаче - ничего не грузит.
Юзерагент ещё свой полный. Вот так проверяй:
wget https://2ch.hk/gg/ --header "Cookie: usercode_auth=<cookie_value>" -U "<useragent_value>"
Ещё кое-какие интересные флаги из хелпа vpxenc:
--sharpness=<arg> \tLoop filter sharpness (0..7)
--static-thresh=<arg> \tMotion detection threshold
--arnr-maxframes=<arg> \tAltRef max frames (0..15)
--arnr-strength=<arg> \tAltRef filter strength (0..6)
--arnr-type=<arg> \tAltRef type
--max-intra-rate=<arg> \tMax I-frame bitrate (pct)
--max-inter-rate=<arg> \tMax P-frame bitrate (pct)
--gf-cbr-boost=<arg> \tBoost for Golden Frame in CBR mode (pct)
--frame-boost=<arg> \tEnable frame periodic boost (0: off (default), 1: on)
--noise-sensitivity=<arg> \tNoise sensitivity (frames to blur)
Часть доступна через ffmpeg, часть — нет.
Работает. Если я запишу в скрипт свою куку, то она будет работать у всех? Как долго? Что зашифровано в этой куке?
>Нет.
Вот спорно. Я в endless sosuch засунул свою куку, работает у 7 людей, так что, как минимум, на IP она не завязана.
cf_clearance завязана на IP и UA - думал, эта тоже. Вообще сейчас же посты без капчи работают, т.ч. можно ее получать постом в /test/, например.
>так что, как минимум, на IP она не завязана
Похоже на md5sum от юзерагента с солью. У меня вот:
UA = Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:41.0) Gecko/20100101 Firefox/41.0
userauth_code = fe94019220ab962647f9c131c6ed09c1
При изменении юзерагента хоть на байт, возвращает 404 на закрытом разделе. На другом айпи работает. Вряд ли там подпись, 128-битные никто не использует сейчас.
На питоне такое пишется за максимум пару часов. Думаю половина тутошних анонов просто не умеет в программирование или им лень.
Надо же еще попапы для рефлинков прикрутить и всякие развороты картинок.
Тогда держите обновление костыля. Проверьте, качает с закрытых или нет?
http://rghost.ru/7n6B2FcTP
>>1422513
>Сосач же в JSON умеет треды отдавать.
Я даже не знаю что это, лол.
>>1422521
В несложное прогроммировоне могу только на яваскриптах.
Слушай, не мог бы ты не засирать нерелэйтедом прикреплённый тред?
Создай отдельный, тогда мы мб там ещё письками померяемся: когда-то давно я писал аналог твоей хуитки, и год назад он ещё работал.
Что в новом теде на сотни постов обсуждать-то? Тут хоть я чуть посветил своей поделкой и убёг, может кому из читающих ffmpeg-богов, не страшашихся консольки, пригодится. Ты не переживай так.
> Что в новом теде на сотни постов обсуждать-то?
Вот это. Не устраивай из этого треда помойку, он создавался не для этого.
Меня начинает пугать, что аниме-девочки меня стали возбуждать больше 3д. Кажется это край.
залейте тот отрезок аватара в 60 фпс чо
Немного осилил блендер. Хороший редактор, но уже успел поспотыкаться о как минимум 4 неприятные особенности:
1. Рабочее цветовая модель — RGB, Y'CbCr импортирует всегда используя матрицу BT.601. При вводе Y'CbCr и выводе в H.264 lossless почему-то появляется мыло. Рабочий костыль — конвертировать нарезку в RGB вручную, но это неизбежно приводит к потерям на преобразованиях цветовых пространств. 16bit PNG/32 bit OpenEXR в качестве промежуточных форматов помогают, но места на диске жрут ещё больше. Многочасовые фильмы так не помонтируешь.
2. Текущая версия почему-то любит добавлять пустой кадр в конце импортируемого стрипа. Хотя с исходником всё в порядке.
3. Hard cut работает криво — последний кадр правильно повторяется только со второго раза (после Ctrl-z).
4. Иногда предпросмотр подлагивает при умеренном числе стрипов и один раз откуда-то левый кадр в итоговом рендере появился.
Есть глушилка Джона Сины!
Больше информации: https://github.com/ValdikSS/endless-sosuch/
Билд для Windows: https://github.com/ValdikSS/endless-sosuch/releases/download/v0.0.1/endless_sosuch_win_vlc_0.0.1.rar (требуется установленный VLC, перед запуском засуньте любую вебм-ку в директорию webm).
Но ведь я ещё два дня назад сказал, что реализация — отстой. Вот нафиг ты тратишь столько времени на велосипединг графов gstreamer, переизобретение кэширования и костыльное прикручивание аудио-фильтров, если на выходе всё равно получится урезанный недоплеер с неудобным управлением и убогими декодерами? Почему не взять хороший современный плеер и минимальными усилиями реализовать значительно лучший и удобный для конечного пользователя продукт в виде Lua-скрипта, который устанавливается простым копированием? Ты это пишешь просто чтобы Gstreamer с питоном выучить или как?
Я уже не говорю про особенности твоей реализации в виде кривого конфига на питоне с вынесенными 2.5 настройками в виде выбора драйвера вывода (лол, теперь посмотри на конфигурацию какого-нибудь vo=opengl в mpv), жёсткой завязки на Python 3 и отсутствие какого-либо подобия автоматизации установки.
В конечном итоге, я это все буду вещать в интернет, а не воспроизводить локально, поэтому мне и не подходит просто дополнение к какому-то из видеоплееров.
Ну и да, хочу еще немного с gstreamer повозиться.
Что мешает вещать в интернет при помощи того же mpv? См. mpv -of help и https://github.com/mpv-player/mpv/blob/master/DOCS/encoding.rst
MPV, к сожалению, все еще не умеет вещать без транскодинга. А мне надо вещать без транскодинга, это вполне реализуемо тем же mpegts с несколькими pid-ами.
>вещать без транскодинга
Т.е. слушателям будет приходить оригинальный VP8/VP9 байстрим что ли? И как ты себе это представляешь? Они ж все разного разрешения + надо декодер постоянно переинициализировать, равносильно открытию нового файла. Ну и mpegts как бы VPx не поддерживает.
Это достаточно костыльно, и работает нормально только в VLC, а в ffmpeg-based плеерах нужно вручную переключать видеодорожку, но для H.264 точно работает, с VP8 и VP9 не пробовал, вероятнее всего не заработает.
Да, я хочу вещать оригинальный битстрим.
А вот и жертва маркетинга пожаловала.
С мультилибом напердолился?
Program Files (x86) почистил?
Все свои 32Гб памяти говнокодом забил?
Пердолик, плиз. Приличные люди вообще 32-битного кода на машинах не имеют. Только спермобляди обязаны тащить тонну legacy-говна, которое им забивает всю оперативку.
Но ведь 64 бит - это костыль для того что бы оправдать неоптимизированный говнокод который жрет память
амд64 это название архитектуры процессора, способного выполнять 64 битный код, и отношения к памяти никакого не имеет. А ты позорная спермоблядь.
>x86_32 бога
Ничего что у x86-64 больше регистров, следовательно можно сгенирировать более эффективный и производительный код? Ты бы ещё версию без SIMD использовал. Это видео, чувак, и здесь каждый процент прироста важен. Ты ещё не видел как авторы AviSynth/VapourSynth/кодеков каждый такт процессора и asm задротят.
А между тем, никто так и не заметил, что у >>1422887 мультитрединг выключен.
Хорошо, перефразирую для пердолика:
амд64 это архитектура-костыль, необходимая для того, что бы запускать неоптимизированный говнокод.
>кукареку менеджер коко сказал кудах купить 16гб я купил коко
Сложно понимаю птичий язык, но похоже суть я уловил.
https://bugzilla.mozilla.org/show_bug.cgi?id=1193614#c5
>You can see that they set the number of threads to use when calling vpx_codec_dec_init.
>We don't
Не удивительно, что у >>1408739 тормозило. Накатывай https://bug1193614.bmoattachments.org/attachment.cgi?id=8668280 @ проверяй.
> Что ты у меня просишь? Обоссать?
Пердолик, ты уже сам себя обоссал.
Я же тебя прошу прекратить это делать в этом треде — воняет. Иди этим заниматься в спермотред, туда я обычно не захожу.
Архитектура amd64 (x86-64) позволяет писать более производительный код за счёт своих объективных особенностей, в т.ч. увеличения длины и количества регистров, о чём было написано в >>1423023 и что было подтверждено на практике сравнением производительности libvpx-vp9 >>1422945. Незначительное увеличение потребления памяти (машинный код весит на 20% больше) не является для задачи кодирования видео значимым фактором.
Дальнейшее излияние здесь религиозных страхов спермоблядей перед новой архитектурой (не смотря на наличие для них оснований) не считаю уместным. Вопрос закрыт.
>>1423089
Поставь прыщеchroot с ffmpeg'ом, ололо. Только не удивляйся, что кодирование видео будет в момент сажать батарею.
Ещё неплохой вариант — ssh-клиент и прыщесервер за копейки.
>Поставь прыщеchroot с ffmpeg'ом, ололо.
Я так и делал, кстати. В полевых условиях сойдет, ничего в момент не село. Но медленно, естественно.
>Но медленно, естественно
С --cpu=cortex-a8 и кодеки с оптимизациями под NEON собирал? У меня даже в яваскрипте без всякого SIMD всего в 8 раз медленнее было. С NEON не должно сильнее, чем в 2-3 раза проседать.
Не равняй одного поехавшего с нормальными спермоблядями.
Я обычно ставлю -g 250, этого хватает.
Увидеть ключевые кадры можно вот этим вот однострочником:
[code]ffprobe -of xml -select_streams v -show_entries packet=pts_time,flags -v quiet videofile.webm | grep -v 'flags="_"'[/code]
Размер экономит, а мы здесь в основном на размер оптимизируем. Кому нужна быстрая перемотка, тот -g поменьше поставит. (В libvpx-vp8 128 по умолчанию.)
Да и есть это всё в вики.
https://github.com/archlinuxarm/PKGBUILDs/blob/3c66d9f/extra/libvpx/PKGBUILD#L40
Ну ты понел. У них там в 2013-ом году не собиралось под ARM, они и вырубили, обратно включить ещё не успели. Ну и гитовый libvpx говорят что быстрее, чем релиз.
А потом ещё заявляют, что арч быстрый и оптимизированный, ололо.
>Тред про кодирование вебмок.
>Возможно ли создать каким-то образом флешку или диск для восстановления проблем при загрузке вин10
Спермоклоуны как всегда.
Смотри, в какой тред пишешь.
Это вроде первый за тред, да? Раньше их намного больше было почему-то.
test
Впервые слышу о нём.
Ещё логику префетчера немного поправили: https://hg.mozilla.org/integration/mozilla-inbound/rev/ebf348f1e465
Скорее должно в найтли прилететь. Впрочем, кто будет смотреть вебмки в лисе, которая в половине случаев кривые цвета отображает?
И как я этим консолепердольным говном захватывать буду? Там можно забиндить кнопку на старт/паузу/стоп записи?
Парашливыйобмазанный в говне обосранный в говнецо спермопитуххуесоска шиндозная спидозная проблядь уебывайнахуй иди на куканец своей раздроченной сракой из этого ИТТОФИЦИАЛЬНОГО КОНФЕССИАЛЬНОГО ТРЕДА ХАРДКОРНЫХ ПОСОНОВ треда.
короч я направил зарание сраку в сторону ИГИЛ и ждал пока спермоблядт напишет лично мне оскобляющий мое достоинство пост. И короч, я заправил предверие ануса хорошей такой боеголовкой из тяжелого куска засохшего говна, и вот спермач написал свой легендарный пост, и мой пукан бабахнул! Силы бабаха хватило на то, чтобы прорвать систему ПРО всех государств и по бпллистической траектории кусок нагретого трением 3000 по цельсию, воотщем удетел прямсо в бункер ИГИЛ. И упал, столкнувшись о твердь, что детонировало игиловцев.
Во-первых можно в кукле врубить показ текста под спойлером под умолчанию.
Во-вторых если ты сам не очень смышлёный, то держи лайфхак.
>Enable FFMpeg by default
Ну теперь заживём! В найтли уже по умолчанию ffmpeg для вебмок используется, даже профиль 3 проигрывает. Криво, правда.
Да, хотят на всех платформах использовать: https://bugzilla.mozilla.org/show_bug.cgi?id=1210219
Но пока только лисо-линуксоняши могут наслаждаться невероятной скоростью декодирования VP9 вебмок!
Они и сейчас тормозят.
Ну как бы пикрелейтед. Ты 4K 60fps какой-нибудь открой, сразу заметишь.
Побольше маркетингового буллшита слушай. Это самый правильный способ декодирования с точки зрения конечного результата. Читай http://arhivach.org/thread/100617/#1377676
Хуйни не пори, при декодинге через ГПУ нагрузка на систему минимальная, через ЦПУ только ревут кулеры и процессор под под потолок нагружен - результат тот же, но с гораздо более низким уровнем энергоэффективности.
Ну скинь - открою. Вообще искуственный юзкейс какой-то. Вывод 4K@60FPS сейчас поддерживают 1.5 видеокарты. Имеется в виду конечно же HDMI 2.0 для телевизоров. Даунята с милипиздрическими 4K-мониторами обоссаны автоматически.
>через ЦПУ только ревут кулеры и процессор под под потолок нагружен
Почему у меня на 8K ничего не ревёт, загрузка в районе 200%, а боттлнек вообще в видео-выводе оказался?
>при декодинге через ГПУ
Ну т.е. ты ничего не читал из того, на что я сослался.
>нагрузка на систему минимальная
Действительно, когда у тебя просто чёрный экран на половине современных форматов, нагрузка будет минимальна.
>>1424848
На ютубе полно. Вот, например: https://www.youtube.com/watch?v=7zgrAfq5wDc
Так-то вон жалуются, что даже 1080p60 тормозит: https://bugzilla.mozilla.org/show_bug.cgi?id=1193614
>Вывод 4K@60FPS сейчас поддерживают 1.5 видеокарты
Любая затычка с поддержкой DisplayPort 1.2.
>200%
кек, а у меня 15% на 1080p 15000kbit/s
>8k
Говноедов полон тред.
>чёрный экран на половине современных
форматов
х264 хватает для всего, а остальное - сырое говно и велосипеды от гугла и оно не нужно.
Был исходник 3Mbps и на -crf 32 битрейт ~1.3M
А с исходником 14Mbps при -crf 36 битрейт ~2.5M
https://bugzilla.mozilla.org/show_bug.cgi?id=640073
Теперь полгода с VP9:
https://bugzilla.mozilla.org/show_bug.cgi?id=1190939
>>1424962
Картинки ж разные. Видимо, на версии с большим битрейтом, больше деталей, которые раздувают битрейт и у vpx.
Это относится только в vp9 или вообще? Ты рекомендуешь выключить dxva в плеерах и все будет заебись?
>Ты рекомендуешь выключить dxva в плеерах и все будет заебись?
Использую --vo=opengl --hwdec=no с mpv больше двух лет и никаких проблем. Любые разрешения, любые форматы, 10bit, цветокоррекция и т.д. hwdec=auto, конечно, хуже не сделает, просто вот у меня, например, аппаратно поддерживаются разрешения только до 2048x2048, а такое и CPU совсем не грузит.
Единственное что на 4K и 8K приходится переключать на vo=xv, т.к. моя затычка офигеваеет от таких громадных текстур. Именно на стороне декодирования ни разу не встречал проблем. Если использовать нормальные многопоточные декодеры от ffmpeg, конечно.
>Использую --vo=opengl --hwdec=no с mpv больше двух лет и никаких проблем.
А как же madvr? Или виндой вообще не пользуешься и места для madvr в твоем мире нет?
>Или виндой вообще не пользуешься
This. Хотя, madVR вроде крутой, но на линуксах ничего лучше чем mpv нет. Он ещё и отлично скриптуется к тому же.
Так-то я ничего против аппаратного декодирования не имею, когда конкретный формат поддерживается и без косяков (программную реализацию-то всегда поправить можно, а как ты железку чинить будешь?), просто надоело, что его выставляют как единственно возможный метод декодирования, тогда как на практике то 10бит нет, то ограничения по разрешению, то новые форматы не завезли.
Команда. По отдельности видео и звук из out-v.webm и out-a.ogg воспроизводятся.
Опубликовали сравнения энкодеров. Так и нет нвидиевского, x265 адовый слоупок, а libvpx-vp9 рвёт практически всех, отставая на пару процентов от лучшей реализации HEVC. Таким образом, VP9 сейчас это можно сказать лучшее решение в категории скорость/качество. H.264/H.265-бляди, как обычно, соснули хуйца у VP9-богов :3
Помогло удаление старой версии, спасибо.
>>А теперь давай сравнение декодеров
>ffhevc
Пердоля, плиз.
>>И аппаратной поддержки
Не вижу там ничего про аппаратную поддержку. Особенно в мобильных устройствах.
Никак )0))
Конвертации вопрос.
Есть видео, снятое на miniDV камеру.
Обьем его - 12 Гб, по причине нахуй ненужного аудиобитрейта в 2500кбс.
Чем понятно, а вот как конвертировать без изменения кач-ва изображения, но с ужимом битрейта до 320ти?
Спасибо за внимание.
Используй кодеки, способные сжимать без потерь. H.264, VP9, FFV1, HuffYUV, FFVHuff, Lagarith и т.д. Хорошее сжатие, скорее всего, только первые 2 обеспечат с самыми ресурсозатратными пресетами.
Есть условный Вегас, и есть я, у которого мало времени на тесты всевозможных комбинаций галочек и пунктиков в этом самом вегасе. Какой набор настроек мне требуется для достижения цели?
Спасибо.
Или, если я правильно понял, то тебе нужно просто:
ffmpeg -i in.mp4 -c:v copy -c:a libmp3lame -b:a 320k out.mp4
Видимо неправильно понял, увы.
Здесь только про ффмпег тред. Тебе в порнотред надо.
Здесь тебе ничего не подскажут, тут сидят какие-то злобные анимешники-линуксоиды.
Вообще непонятно что этот тред делает в /s, да ещё и закреплён, его следует пидорнуть куда-нибудь в /media
Две строчки в консолечке так трудно, что только злобный анимешник-линуксоид осилит? Тебе не стыдно быть таким дауном?
Вики из шапки почитать, например, мудило.
Firefox
± Традиционно куча проблем с MSE на Linux, но в найтли вроде уже починили
− Не понимает теги цветового пространства VP9, всегда использует BT.601
+ Перешёл на ffvp9 (пока только в Nightly и на Linux)
± С ffvp9 воспроизводит все профили VP9, даже многобитные, но корректно выглядят только нулевой и в некоторых случаях первый
Chrome
+ С MSE всё в порядке
+ Начиная с версии 46 есть даже эвристика выбора цветовой матрицы по разрешению видео, теги правильно понимал ещё раньше
± libvpx для VP9 (теоретически, можно отключить при компиляции и тогда должен использоваться ffvp9, но не проверял)
− Только нулевой профиль, на остальных крашит таб с видео
Бонус: поддерживает альфа-канал в VP8.
Итог: я б сказал, что суммарно более-менее одинаково, но если в FF починят распрознавание тегов и дополнительные профили (в чём я сомневаюсь, впрочем), будет перевес на его стороне.
> ± Традиционно куча проблем с MSE на Linux, но в найтли вроде уже починили
У меня никаких проблем нет с MSE.
Пока здоровые люди смотрят в mpv, браузероговноеды все пытаются скрестить ежа с ужом, приделывая к просмотрщику гипертекста невероятные костыли для задачи, к которой он вообще не предназначен.
Не надо, здесь другие ребята. Пердолят исходники и все дела.
Я вот только не пойму, вы в какую-нибудь релиз-группу попасть не пробовали? Делали бы качественные рипы людям на пользу вместо смищных роликов.
В багтрекер глянь. Например, на этот метабаг, ололо: https://bugzilla.mozilla.org/show_bug.cgi?id=MSE
>>1426158
Дай угадаю, очередной адепт NoScript, поддавшийся на идиотские форсы ничего не смыслящих в предмете фанатиков :3 Я-то через mpv смотрю, кстати, так удобнее и не хочу в контейнере звук включать.
>>1426161
>Делали бы качественные рипы
Будто бы здесь кто-нибудь умеет что-то кроме вбивания стандартной команды ffmpeg. Впрочем, я понемногу VapourSynth ковыряю, выглядит прикольно и кроссплатформенный к тому же.
> В багтрекер глянь. Например, на этот метабаг, ололо: https://bugzilla.mozilla.org/show_bug.cgi?id=MSE
Ну у меня то никаких проблем нет с ним.
>Я вот только не пойму, вы в какую-нибудь релиз-группу попасть не пробовали? Делали бы качественные рипы людям на пользу вместо смищных роликов.
Этих релиз-групп с "качественными рипами" так дохуя, что просто дохуя. Зачем?
Расширенная версия сравнения кодеков от MSU. Они оказывается libvpx 1.3.0 со speed=1 тестировали, я фигею (впрочем, в 1.3.0 ещё не было tile-columns, всё напутали небось). Но даже так результат очень хороший по сравнению с остальными.
> впрочем, в 1.3.0 ещё не было tile-columns, всё напутали небось
Параметр-то был, только он не использовался в VP9, а игнорировался.
test
>Both CUVID and "copyback DXVA" are very similar. CUVID also always includes a copyback operation. The only advantage CUVID offers over copyback DXVA is that CUVID supports deinterlacing inside of LAV Video Decoder, which copyback DXVA currently does not support. But that's really not very important, when using madVR. So there's pretty much zero reason to use CUVID. It used to be a good solution, but copyback DXVA has improved so much that it's overall quite a bit better than CUVID now.
>Native DXVA saves the copyback, so it lowers CPU usage. However, DXVA decodes to a format that it hard to work with for madVR. This results in a certain loss in chroma quality. In most situations you probably won't see the difference, but it's there. So unless you have to use native DXVA for some reason, using copyback DXVA is the better choice. Personally, I even use straight software decoding because for me it's the fastest and most reliable decoder.
>Can't you just trust in what we said? Namely that native DXVA decoding comes with a small quality loss on some GPUs? That's a fact. Why that is the case is highly technical and shouldn't really be very important to you as a user, or am I wrong? It's just the way it is. Use native DXVA decoding if you want lowest power consumption. Use copyback DXVA or software decoding if you want highest quality. My best guess is that CUVID will sooner or later disappear from LAV Video Decoder.
>I even use straight software decoding because for me it's the fastest and most reliable decoder
На каком-нибудь кукарекоре ай7 что ли? Это сейчас никого не ебет. Иди владельцам смартфонов (особенно нетоповых) расскажи про чудеса софтварного декодирования, лол.
>most reliable decoder
Это подразумевает использование всяких анальных извращений (вроде ваших ИТТ) ради 1% экономии, после чего получившийся файл не переварит большая часть аппаратных декодеров.
Много видюх знаешь с аппаратной поддержкой популярных анимешных H.264 10bit релизов? inb4 они тоже извращенцы
>анимешных
>10bit
>они тоже извращенцы
В хорошем вопросе есть 80% ответа. У тебя просто отличный вопрос.
В mpv, кстати, LCMS и весь прочий color management на GPU производится и копирование результата декодинга только для VAAPI и DXVA2 реализовано. С hwdec=vdpau, видимо, всё ок.
Ещё есть поддержка аппаратного постпроцессинга вроде vdpaupp и vavpp. Качество, наверняка, плохое, зато может быть быстрее собственных шейдеров mpv на слабых видеокарточках.
>На каком-нибудь кукарекоре ай7
Неужели какой-нибудь дешевый пентиум на последнем ядре, если такие есть, я честно говоря не слежу, не потянет софтварно все современное? Без 4К.
https://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=416e35e5aafc2a2bf77372d5e8479c28796d1451;hp=e11e32686fdb21aded1ccf70202f1fffe87bb6a2
Олсо,
>add VAG support
-vf subtitles нужен для нарезки хардсаба из контейнера, -vf ass - из внешних сабов форматов .ass и .ssa, так? А чем тогда нарезать внешние сабы из .srt?
vf_subtitles конвертирует любой поддерживаемый формат субтитров в ASS, vf_ass поддерживает только ASS. Оба используют libass. vf_ass смысла использовать почти нет вообще.
Тогда еще вдогонку спрошу - пробовал конвертить сабы из .srt в .ass одной строкой:
ffmpeg -i sub.srt -sub_charenc windows-1251 sub.ass
Всё правильно сделал?
ffmpeg -i video -map 0:0 -map 0:1 -i subtitry -map 1:0 -c:s libass -f matroska filmec.mkv
Ты делаешь лишние телодвижения.
Никогда не делал этого, но должно быть так.
А зачем субтитры перекодировать? Матрёшка ж и SRT поддерживает, просто -c:s copy достаточно.
ffmpeg
У вас же пакетный менеджер есть. Шоколадка или как там его.
Обрати внимание, о чём тхреад, дегенерат.
На виндоуз завезли кривой патчи для поддержки ffmpeg: https://bugzilla.mozilla.org/show_bug.cgi?id=1214462
Для Windows 10 хотят включить VP9 MSE по умолчанию: https://bugzilla.mozilla.org/show_bug.cgi?id=1216018
Любители H.265 до того упоролись, что засовывают AAC в WebM: https://bugzilla.mozilla.org/show_bug.cgi?id=1214441
Четырёхлетний баг проигрывания Theora без цветовой дискретизации исправлен: https://bugzilla.mozilla.org/show_bug.cgi?id=1195152
Есть 20Gb записей захватом экрана с онлайн трансляций, но из-за кривой записи, видео воспроизводится в 2 раза медленней чем должно быть (15фпс вместо 30фпс), а звук заканчивается на середине всех записей. Можно ли как то это пофиксить через ffmpeg без переконвертации всех 20гб видео? Пока ебусь с двумя плеерами, на одном только звук, а на другом видео х2 ускорением, но это очень неудобно.
>патчи для поддержки ffmpeg
Шикарно, почти на уровне хрома. Нужно подождать стабильной версии и можно перекатываться.
ffmpeg ещё не мержили на виндоуз, это скорее всего результат патчей из
https://bugzilla.mozilla.org/show_bug.cgi?id=1193614 и
https://bugzilla.mozilla.org/show_bug.cgi?id=1213131
Хотя странно, что у тебя лиса до сих пор фреймы дропает. Они там бедные уже все извелись в попытках сделать проигрывание без тормозов.
Если запущена только лиса без какой-либо фоновой нагрузки, то не кадры не пропускаются.
Если, например, запустить вебм одновременно в хроме и лисе, то в лисе есть подвисания, а в хроме нет.
Если без перекодировки, то можешь попробовать поиграться с выделенными настройками на пикрелейтед, как для видео, так и для звука.
> 9,58 МБ.
Делаю с точно такими же параметрами, добавив лишь -r 30
> 10,7 МБ
Объясните это дерьмо.
Из-за изменений в последовательности кадров, кодек сделал другие, менее эффективные предсказания движения?
Сдампи все кадры в обоих случаях, сравнивай. Размеры пакетов тоже сравни покадрово.
ffmpeg -i pr.webm -i pr1.webm -c copy -map 0:v -map 1:v -c:v:1 vp9 -b:v:1 0 d-on3p.web
ffmpeg -hide_banner -i pr.webm -i pr1.webm -c copy -map 0:v -map 1:v -c:v:1 vp9 -b:v:1 0 -crf 8 -speed 1 d-on3p.webm
да, бля
Разрешение должно быть больше. Это особенность ffmpeg просто. Макака может в любую минуту добавить -map 0:v:0 и работать перестанет.
-pix_fmt yuv420p забыл
Главное чтобы на краутчане работало, только так там можно постить vp9 - с vp8 превью.
краучан для педофилов
Я пока просто пишу просто -b:a 320k, например.
Это по дефолту будет Vorbis. В ОП-посте написано:
"libvorbis при указании битрейта (-b:a) работает в режиме CBR (постоянный битрейт), и это портит качество звука; для режима VBR вместо битрейта надо указывать качество (-q:a);"
Значит я нерационально делаю? Как работать с ключом -q:a ?
Алсо, если указывать таки битрейт, число должно быть чему-то пропорционально, или можно любое ставить? Например 142к, 228к, 1488к и т.д.
>по кодированию хорошего аудио
Opus — лучший аудио-кодек для сжатия с потерями общего назначения, особенно хорош на низких битрейтах.
-c:a libopus -b:a 64k ← нормально для немузыкально-ориентированных видео (в основном речь)
-c:a libopus -b:a 96k или 128k и выше ← для музыки
-c:a libopus -b:a 48k ← если совсем в размер не влезаешь, будет нормально, в принципе (я и в 8k скринкасты энкодил, впрочем)
Но ведь в вики написано, что для звука выше 128к лучше использовать Vorbis. Тогда разве не им следует кодировать видео с упором на музыку? В чем соль использовать opus ?
иди ВУЗ поступай, там тебе обеснят о психовосприятии звука, Емеля ты деревенщина
Так не сказано, что надо использовать Vorbis, а что Vorbis на высоких битрейтах тоже достаточно хорош. И что у Opus баг с зацикливанием в Firefox, который уже починен.
Вот что говорят разработчики Xiph по этому поводу:
16:14 < q> Are there any disadvantages of using Opus for high bitrates compared to Vorbis, in terms of quality?
16:17 < ron_> aside from "maybe a few things that support vorbis still don't support opus yet", not really.
16:18 < ron_> once you're at a high enough bitrate for it to be transparent, it's transparent. and opus should generally get there at a lower bitrate than vorbis.
16:19 < ron_> there's might be some outliers to that, but they're probably good candidates for further tuning of opus :)
Если недостаточно, то вот: https://wiki.xiph.org/OpusFAQ#Will_Opus_replace_Vorbis_in_video_files.3F
Можешь ещё сравнения на Hydrogenaudio погуглить.
Благодарю, так понятнее.
В треде почти везде -b:v 0, а -crf имеет какое-то значение.
Понял только, что -b:v ограничивает битрейт видео, а -crf типа сжимает видео, что заметно на динамических сценах.
-b:v означает что ты хочешь чтобы битрейт не был константой, т.е. где сцена динамическая - там побольше битрейт, где нихуя не происходит - поменьше.
После этого ты или указываешь crf, что есть степень сжатия (0 - лосслесс, каждые 6 в среднем режут объем в 2 раза), или -b:v 620K где 620к - это целевой средний битрейт (т.е. при 2pass кодинге у тебя по идее наберется примерно 620*секунд в видео килобит+звук). По сути в этом случае ffmpeg сам подберет нужный crf. Поскольку с выбранным вручную crf сложно что-то прогнозировать, не советую им пользоваться, он может быть полезен когда тебе нужно определенное качество, а на объем похуй (bdrip пережимаешь например).
Криво объяснено, кстати. И термины переведены неправильно.
VBR это по сути автоподбор QP. И при CQ QP тоже плавает в некоторых пределах. Кроме QP на низком уровне и нет ничего, что приводило бы к порче изображения (почти, ещё всякие луп-фильтры), он определяет сколько информации о цвете пикселей потеряется (точнее там уже коэффициенты DCT-матриц), выступая в роли знаменателя.
В режиме VBR на первом проходе выполняется обычный энкодинг с каким-то фиксированным QP, на втором он корректируется, исходя из заданного пользователем битрейта и реально полученного размера пакетов (т.е. интерполируется).
В режиме CQ заданный QP используется в качестве базового. (Про -b:v в режиме CQ, qmin и qmax по ссылке правильно написано.) Т.е. энкодер всегда оперирует с QP, явно или неявно.
Constant quality это частный случай CQ, когда ограничений на итоговый размер нет (т.е. -b:v 0 в ffmpeg).
CBR почти то же, что и VBR, но энкодер не позволяет себе гибко перераспределять QP кадров в пределах своего буфера, тем самым теряя в эффективности. По этой же причине однопроходное кодирование приводит к ухудшению качества. (У x264, как говорят, и один проход с -crf использует гигантские буфера, в отличии от libvpx, где второй проход с CQ помогает лучше распределять QP.)
>WebMConverter
При запуске конвертирования пишет следующее:
ffmpeg.exe exited with exit code 1.
Что блядь ему нужно? Уже и в простейшей программе с двумя кнопками нужно копаться?
Там же по ссылке внизу сказано, что нужно ещё кое-какой софт иметь установленным, это условие выполнено?
Естественно.
Создавай тогда новый баг. Фигли ты здесь-то ноешь?
Юзаю команду ffmpeg -i in.ts out.mp4
Вот размеры файлов, ts->mp4:
111M->123M
86M->165M
129M->766M
У входных файлов разрешение одинаковое. Длительность 40-60 мин. Первые два файла заняли не больше 15 мин. Последний конвертировался всю ночь, при том еще и не завершился, остановил.
Почему так долго занял последний файл?
Может опцию еще какую указать?
Почему размеры выходных файлов не пропорциональны?
В каком формате сейчас модно хранить видео?
-c copy укажи.
Ты думаешь дефалтные параметры в ффмпеге сделаны на все случаи жизни и для всех целей? Хуй там. Подбирай сам, читай вики, откуда ффмегу знать в каком говнокачестве у тебя исходники и какое говно из них ты хочешь сделать?
>В каком формате сейчас модно хранить видео?
В оригинале? Любое перекодирование снижает качество.
Кстати, никто не пробовал фильтры вроде 2dcleaner накручивать, чтобы избавиться от отвратительного алиасинга на очень низких битрейтах (~200k)?
Вот как здесь, например: http://rutracker.org/forum/viewtopic.php?t=2253052 Да, вся душа в виде оригинального шума плёнки потеряна, знаю, зато сжалось-то как офигенно. Аналогичные рипы раза в 3 больше весят. Для борд самое то.
Пока только приходится уменьшать разрешение в самый край (288p) и уменьшать fps до 12, чтобы выглядело пристойно.
VP8 и VP9 позволяют их указывать, это не H.264.
Разве что у хромиума были проблемы с воспроизведением.
>400x225
Лол, даже в 3gp на первых телефонах с видеокамерами вроде больше было.
Я вот тут подумал: в какой момент алиасинг/блочность начинают субъективно восприниматься лучше, чем минтиатюрное разрешение? Да, постоянно видимые искажения раздражают, зато в целом информации в картинке присутствует больше. По идее, для аниму намного выгоднее снижать фпс, 2/3 кадров на большей части повествования можно смело выкидывать, только в некоторых моментах (вроде движений камеры) 12/24 обратно включать.
Переставать жрать говно.
Дело не в ffmpeg, а в мокропиське.
> Я вот тут подумал: в какой момент алиасинг/блочность начинают субъективно восприниматься лучше, чем минтиатюрное разрешение?
Зависит от формата. С VP8 алиасинг/блочность воспринимаются хуже чем с VP9.
> Да, постоянно видимые искажения раздражают, зато в целом информации в картинке присутствует больше.
Если эта информация высосана декодером из пальца, то кому она нужна. Хотя…
Пик взят с https://people.xiph.org/~jm/daala/paint_demo/
> По идее, для аниму намного выгоднее снижать фпс, 2/3 кадров на большей части повествования можно смело выкидывать, только в некоторых моментах (вроде движений камеры) 12/24 обратно включать.
Но с этим неплохо справляется и компенсация движения, не?
На практике применение фильтра mpdecimate с VP9 давало буст качества, но при этом ломало напрочь работу контроллера ширины потока — он переставал держать битрейт и начинал распидорашивать кадры смены сцен.
Вебмрелэйтед.
Кусочек не поместился.
>Если эта информация высосана декодером из пальца
Так нет же, пиксели настоящие. Просто у тебя, допустим, в одном случае разрешение 960x540 и блочности много, а в другом 400x225 и серьёзных искажений почти незаметно. Мне интересно, где находится та грань, когда лучше сделать покрупнее, но с артефактами. Пикрелейтед.
>Но с этим неплохо справляется и компенсация движения, не?
Это всё равно не бесплатно. Я несколько вещей энкодил с "-r 12" и улучшения были очевидны. Там просто реально 2/3 кадров это полные повторы в большинстве сцен, если ты посмотришь на раскадровку. Энкодить их — тратить битрейт попусту, пусть и не сильно много.
>Вебмрелэйтед.
Я бегло пролистал и ничего особо криминального не заметил. Какие конкретно моменты?
>он переставал держать битрейт и начинал распидорашивать кадры смены сцен
Ты уверен, что это не особенность libvpx просто? Оно любит кадры в момент смены сцены энкодить с очень плохим качеством, типо как незаметные. Не знаю, кому как, но я теперь постоянно обращаю внимание, как начал энкодить, блин.
Апскейлы до 2560x1440 (эмуляция проигрывания в фуллскрине).
Выглядит так, как будто 640x360 — золотая середина.
Олсо, лол, libvpx нещадно выдрал на нос на всём, кроме 400x255.
Если ты мне подаришь железо, которое сможет 24fps выдать с этим фильтром.
А не пиздишь? Вот здесь сообщают о 0.25fps для DVD-разрешения на GTX 770: http://forums.qhimm.com/index.php?topic=16359.0
NNEDI3 тогда уж. Или хотя бы ewa_lanczossharp. Вайфу для реалтайма никогда не предназначалась.
> Так нет же, пиксели настоящие. Просто у тебя, допустим, в одном случае разрешение 960x540 и блочности много, а в другом 400x225 и серьёзных искажений почти незаметно. Мне интересно, где находится та грань, когда лучше сделать покрупнее, но с артефактами. Пикрелейтед.
А ты апскейли 400x225 до 960x540 и сравни. (already done) Если видео с низким разрешением, но без видимых артефактов, то его и апскейлить можно не плюясь довольно сильно.
А ещё восприятие зависит от динамики.
> Это всё равно не бесплатно.
Угу. Возможно, по большей части потому, что статичной картинке кодек стремится выделить больше битрейта.
Если кодировать чисто статичную картинку, то количество её повторов в пределах GoP'а на размер мало влияет: каждый новый кадр весит копейки.
> Я бегло пролистал и ничего особо криминального не заметил. Какие конкретно моменты?
64.356 первой вебмки, например. Кадр пожат так, как будто является частью непрерывной анимации, хотя на деле он висит 1.293 секунды.
>>1432266
Нихуя он не делает, просто пропускает кадры и всё. Видимо, потому и контроллер ширины потока libvpx фэйлится: у упомянутого выше кадра стоит pkt_duration_time=0.041.
https://github.com/FFmpeg/FFmpeg/blob/n2.7.2/libavfilter/vf_mpdecimate.c#L198
ffmpeg -ss 00:15:43 -i "путь А" -to 00:01:24.120 -vf scale=-1:800 -b:v 0 -crf 30 -c:v vp9 "путь Б"
При перемотке видео не воспроизводится сразу, а еще подгружается какое-то время, как этого избежать или так и должно быть?
-g поставь поменьше (по умолчанию 9999 для VP9) . См. https://github.com/pituz/webm-thread/wiki/glossary#gop-group-of-pictures .
>Если видео с низким разрешением, но без видимых артефактов, то его и апскейлить можно не плюясь довольно сильно
Смотря насколько низкое. Если 400x225 апскейлить до 2560x1440, то выглядит неприятно мутно даже с хорошим ресемплером.
>Кадр пожат так, как будто является частью непрерывной анимации
Да, похоже что libvpx плохо с VFR дружит. Но как костыль, например: определить (глазами или скриптом) области с 8, 12 и 24fps в используемом отрывке, энкодить их отдельно с соответствующим "-r" и затем склеивать на уровне демуксера.
Звук получается идеально 224 Kbps, а вот видео не 300, а ~300-224, то есть около 80.
Какого хрена, ведь -b:v задает битрейт видео!?
Имел ввиду pkt_duration_time.
Кстати, что интересно, libvpx в главной функции vpx_codec_encode таки принимает длительность кадра:
http://www.webmproject.org/docs/webm-sdk/group__encoder.html#gaf990542e2aeb389f05fae3e9c7803639
https://chromium.googlesource.com/webm/libvpx/+/v1.4.0/vpx/src/vpx_encoder.c#200
Но ffmpeg передаёт туда даже не pkt_duration_time, а fps, который указан в контейнере, как я понимаю:
https://github.com/FFmpeg/FFmpeg/blob/n2.8.1/libavcodec/libvpxenc.c#L909
Так что со всем сторон сломано.
>>1432797
300k.
Кажись, у ffmpeg'а вообще нет поддержки кодирования кадров с переменным fps: поле frame->pkt_duration используется при декодировании.
https://github.com/FFmpeg/FFmpeg/blob/master/libavutil/frame.h#L432
А как у тебя mpdecimate вообще кадры удалял? У меня на тестовом файле ничего не меняется — на выходе такое же количество кадров, как и на входе. Помогает только задание "-r" руками, но оно ж заранее неизвестно.
> А как у тебя mpdecimate вообще кадры удалял?
Просто брал и удалял.
> У меня на тестовом файле ничего не меняется
Мб у тебя там фильтр fps добавлял кадры обратно? Или выходной формат не поддерживал переменный фпс.
>Или выходной формат не поддерживал переменный фпс.
Точно, спасибо. Полчаса ебался. С .avi получилось сразу, а с .y4m ни в какую.
Случайно нагуглил. tfw всё уже было и всё сто раз как обсудили.
Кстати да, в ffmpeg же интерполяцию завезли недавно, можно возобновить эксперименты с дропаньем и восстановлением кадров.
Я вот только не понял, нафиг эта еботня с mpdecimate, если ставишь смело "-r 8" и получаешь корректный результат на большей части сцен?
Далеко не во всех сценах 8фпс — бывают, например, сцены со скроллингом фона или плавной сменой освещения, где фпс полный. Превращать их в рывки не очень хочется.
Да хоть в 120. Толку-то, если при этом картинка размазывается?
Ох, лел. Тогда толку нет. Это, как ресемплинг в SV или смеживание кадров в AE.
Sony Vegas есть, но уж больно он тяжелый и набит разным. Гайды смотрел, много телодвижений.
Если нет ничего адекватнее, буду ебать с Вегасом.
а тут начал делать превью по гайду, но постоянно получается webm,состорящая из превью
и аудио дорожки из видео. Куда при сжатии 2я проходами надо прописывать добавление превью?
Объясните на примере кода гайда:
%ffmpeg -i amv.mp4 -map 0:v -vf scale=-1:540 -c:v libvpx-vp9 -pass 1 -f null -y /dev/null
fmpeg -i amv.mp4 -map 0:v -vf scale=-1:540 -c:v libvpx-vp9 -pass 2 -b:v 277k -auto-alt-ref 1 -lag-in-frames 25 video.webm
ffmpeg -i amv.mp4 -i video.webm -map 0:a -c:a libopus -b:a 64k -map 1:v -c:v copy out.webm%
Добавляй второй дорожкой, чтобы видео не поганить левым кадром.
https://github.com/pituz/webm-thread/blob/master/tools/add-preview
Но мне нужно кадр не из webm. Или я что-то не так понял?
сори я 5и вебемочный пидор мне тяжело в https://github.com/pituz/webm-thread/blob/master/tools/add-preview этом ковыряться
Допустим у тебя есть сковернтированная вебмс (со звуком) и разрешением 960x540
То берешь картинку/кадр из вебм и делаешь:
ffmpeg -i pic.jpg -c:v vp8 -crf 4 -b:v 0k -vf scale=960:541 1frame.webm
Разрешение у превью должно быть больше
Затем:
ffmpeg -i video.webm -i 1frame.webm -c copy -map 0:v -map 1:v -map 0:a video_with_preview.webm
Написал мега-кривой патч, который фиксит VFR в mpdecimate, libvpx и matroska.
Единственный косяк — последний кадр проёбывается, не придумал пока как лучше это пофиксить.
https://gist.github.com/anonymous/aa0333d87831f9e64364
Откуда оригинальное видео ? Хочу тоже его перекодировать
Хватит уже в конец видео левые байты дописывать, чините свои куклы.
> играть с видео с конца в начало
Кстати, в ffmpeg недавно завезли фильтр reverse, который пожрёт всю оперативку.
>>1433217
> Ну надо их отдельно энкодить и склеивать, как я выше писал.
И где тут еботня — в ручном нарезании на куски или в примененнии фильтра mpdecimate (который можно попросить не выкидывать больше двух кадров подряд).
> Или VFR чинить.
Работаю над этим. Что-то уже получается — libvpx'у передаётся разница в PTS между текущим и следующим кадрами. Но пока дропается последний кадр и вычисленный pkt_duration не сохраняется в контейнер.
Ага. Вот моё: http://pastebin.com/wBdP2LFQ
Кажется, в случае с фильтром проблему потери кадра легко решить.
А зачем это:
> - if ((side_data_size && additional_id == 1) || discard_padding) {
> + if (1 || (side_data_size && additional_id == 1) || discard_padding) {
и пара аналогичных выключений условий?
В SimpleBlock нельзя BlockDuration элемент положить. Это мега-костыль на самом деле, я за 2 минуты пролистнул доку по матроске и кое-как запатчил.
Т.е. там BlockGroup нужен. Ну ты понел. Лень спеку читать.
Спасибо, видимо в разрешении превью была проблема
webm -i '[DeadFish] Anitore! EX - 01v2 [720p][AAC].mp4' -vb 200 -t 10 24fps.webm
webm -i '[DeadFish] Anitore! EX - 01v2 [720p][AAC].mp4' -vb 200 -t 10 -fo='-r 12' 12fps.webm
webm -i '[DeadFish] Anitore! EX - 01v2 [720p][AAC].mp4' -vb 200 -t 10 -fo='-r 8' 8fps.webm
webm -i '[DeadFish] Anitore! EX - 01v2 [720p][AAC].mp4' -vb 578 -t 10 -vf mpdecimate mpdecimate.webm
WEBM_FFMPEG=patched-ffmpeg webm -i '[DeadFish] Anitore! EX - 01v2 [720p][AAC].mp4' -vb 23 -t 10 -vf mpdecimate mpdecimate-patch.webm
Все файлы получились примерно одинакового размера, около 325k. Патч также ломает рейт-контроль, но в обратную сторону, лол. Улучшений по сравнению с дефолтом нет, даже наоборот. Самый качественный результат дал 8fps.
Походу в libvpx просто rate control на такое не рассчитан.
Пока придумался только костыль с анализом видео через mpdecimate (последовательности drop_count:1, 2, -1 = 8fps, drop_count:1, -1 = 12fps и т.д.) и скриптом для разрезания, энкодинга и склеивания. На постоянном framerate libvpx проблем не испытывает.
http://www.imagemagick.org/Usage/resize/
http://www.imagemagick.org/Usage/filter/
http://www.imagemagick.org/Usage/filter/nicolas/
Пиздец как всё сложно. Я всю жизнь ресайзил картинки неправильно!
В чем косяк, как поправить?
> webm-тред прикреплён
> прыщетред прикреплен
> дрисняткотред прикреплён
> каноничный спермотред на дне
Моча обезумела.
Всю нулевую занять прикреплёнными, мне нравится ход твоих мыслей.
Понял. Как альтернатива получается можно увеличить число ключевых кадров через -g.
Не понимаю только, почему в вебм покороче с чуть большим битрейтом такого нет. Там можно мотнуть куда угодно, правда с загрузкой.
https://arewecompressedyet.com/ (вкладка Images)
- Уменьшаем разрешение в самый край, 360p/288p/225p вполне смотрибельно
- Смело ставим битрейт аудио в 48k/36k, речь и фоновую музыку будет нормально слышно (для скринкастов и аудиокниг допустимо 8-10k)
- Если это аниму, то уменьшаем fps до 8 или 12, главное чтобы длительных движений камерой не было, их нужно с полным fps кодировать
- -qmin 15/20/30 может помочь энкодеру не тратить битрейт попусту
- -speed 0 -tile-columns 0; будет медленно, но чуть лучше
- Можно попробовать CQ/constant quality и поподбирать QP
Эх, проводили бы какие контексты по кодированию хоть, чтобы коллективными усилиями сбрутить идеальные настройки для заданного видео. А то вот я до сих пор не в курсе про отличия в качестве VBR vs CQ, влияет ли aq-mode и насколько хорошо помогает снижение undershoot-pct/overshoot-pct.
vbr-200k = vbr-200k-qmin30 < crf-57-200k < crf-60
Все файлы одинакого размера.
Таки VBR хуже. Я фигею с libvpx.
Хотя, некоторые кадры у VBR лучше. Херня такие сравнения, короче. Надо строить график SSIM по кадрам и оценивать в целом.
В целом CRF, но результатам с одного прогона мало смысла доверять, надо побольше потестировать.
Вот код для IPython, если что (надо бы в скрипт оформить): https://gist.github.com/anonymous/224c05f87f5bcddec634
Я делаю ffmpeg -i 1.mkv -map_metadata -1 -c:v copy -c:a copy 2.mp4
Но главы всеравно остаются, гуглил ffmpeg chapters remove, нече другого не нашел.
ffmpeg -i g.mkv -ss 45:12 -to 51:15 -c:v vp9 -b:v 300K -vf scale=-1:480 -c:a libvorbis -q:a 7 ichiban2.webm - 18.9 МБ
ffmpeg -i g.mkv -ss 45:12 -to 51:15 -c:v vp9 -b:v 300K -vf scale=-1:480 -g 1000 -c:a libvorbis -q:a 7 ichiban2.webm - 19 МБ
ffmpeg -i g.mkv -ss 45:12 -to 51:15 -c:v vp9 -b:v 300K -vf scale=-1:480 -g 500 -c:a libvorbis -q:a 7 ichiban3.webm - 19.1 МБ
ffmpeg -i g.mkv -ss 45:12 -to 51:15 -c:v vp9 -b:v 300K -vf scale=-1:480 -g 250 -c:a libvorbis -q:a 7 ichiban4.webm - 19.3 МБ
Думал больше места отжирается.
А сколько ключевых кадров в первом и последнем видео?
(ffprobe -loglevel quiet -show_frames -select_streams v in.webm | grep -c key_frame=1)
можно пример? Я только для питона нашел:
# Fit video to 6 MiB
python webm.py -i in.mkv -l 6
но он пытается открыть "webm" файл, а не обработать мое видео с помощью webm библиотеки. Можешь ткнуть меня в правильный вариант?
Если через pip, то просто "webm".
Иначе нужно скачать webm.py с гитхаба и из директории с ним запускать как "python webm.py".
иди на хуй
Спермоконсоль не понимает команду:
"grep" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
А я не так прошарен, чтобы пофиксить.
Скажу так, в первом случае MPC с быстрой перемоткой видит две точки этой самой перемотки.
В последнем мотать можно на каждые 9 сек, то есть около 40 точек.
PS:\>ffprobe -loglevel quiet -show_frames -select_streams v in.webm | Select-String -Pattern key_frame=1 | Measure-Object -Line
Ололо.
а еще можно не заморачиватся и не писать каждый раз разрешение
@
превью из картинки
ffmpeg -i pix.png -pix_fmt yuv420p -vf scale=iw+1:ih+1 prev.webm
@
превью из видео
ffmpeg -ss 1:10 -i file.mkv -map 0:v -t 1 -r 1 -vf scale=iw+1:ih+1 prev.webm
вырезать 1 секунду начиная с минуты десяти секунд
@
собрать webm с превью
ffmpeg -i file.webm -i prev.webm -c copy -map 0:v -map 0:a -map 1:v out.webm
Это одно и то же.
Большое спасибо! Первый раз питон библиотеку запускаю не вызывая явно питон.
Как этого избежать?
Бля, хотел тред создать. Потрите это.
Ты нам так дохуя информации дал, что помогать тебе это первое, что хочется делать. Сейчас только включу чтение мысль и побегу помогать. Мудак.
Ты если делаешь вебм для порнотреда можешь делать ее и в вп8, если делаешь хорошую вебм 4-5 фпс это вполне быстро.
Насколько долго? С настройками помедленее у меня скорость 3-5 фпс. С дефолтными в конвертере 14-17, делается за пару минут.
Либо libvpx 1.3.0.
Да, убрал галку - стало около трёх фпс.
Какую еще информацию тебе давать, черт? Читай внимательнее мой вопрос, там все есть. формат забыл указать .mov.
Для чего уменьшать? На каком устройстве смотреть будешь? Где вывод mediainfo? Скрин из видео где?
Написал немного быдлокода: https://gist.github.com/anonymous/0a3ee3f68c2d1c6fba7c
Немного косячит на расстановке надписей, но в целом норм, можно более-менее объективно сравнивать энкоды.
Сравнение для интереса.
best в самом деле чуть получше.
Команды, если что:
wget https://2ch.hk/s/src/1395791/14430405474460.webm -O good.webm
wget https://2ch.hk/s/src/1395791/14430405475091.webm -O best.webm
youtube-dl -f 136+bestaudio wVuA74sdMIw -o orig-full.mp4
# Проверяем число кадров
ffprobe -loglevel quiet -show_frames -select_streams v -of csv good.webm | wc -l
ffprobe -loglevel quiet -show_frames -select_streams v -of csv best.webm | wc -l
# Ищем тот же момент в исходнике и копируем
ffmpeg -ss 1:23 -i orig-full.mp4 -frames:v 576 ref.y4m
# График
cmpv -ref ref.y4m best.webm good.webm -k
# Контрольные проверки среднего на всяких случай
awk -F '[: ]' '{a += $10}END{print 10(log(NR)/log(10) - log(NR - a)/log(10))}' good.log
awk -F '[: ]' '{a += $10}END{print 10(log(NR)/log(10) - log(NR - a)/log(10))}' best.log
Забыл про звёздочку:
awk -F '[: ]' '{a += $10}END{print 10∗(log(NR)/log(10) - log(NR - a)/log(10))}' log
Кстати, у меня переодически код не макаба не принимает, ссылаясь на спамлист, это такая защита от кулхацкеров что ли?
Не мучайся:
echo YXdrIC1GICdbOiBdJyAne2EgKz0gJDEwfUVORHtwcmludCAxMCoobG9nKE5SKS9sb2coMTApIC0gbG9nKE5SIC0gYSkvbG9nKDEwKSl9JyBsb2cK|base64 -d
vf scale=width:height
Если ставишь -1, то этот параметр будет подобран автоматически с сохранением пропорций
Да, обычный mpdecimate с дефолтными параметрами. Детектирование панарамирования я пока не осилил.
Фапаю на ipython. Удобно, быстро, воспроизводимо. Красота!
http://nbviewer.ipython.org/gist/anonymous/df3bc83fa6fb21d900c2
https://gist.github.com/x5f3759df/842a8ab5734c4fdd937e
https://datatracker.ietf.org/meeting/94/agenda/netvc/
Офигенно кодеки писать: раскатываешь по странам, фигачишь публикации, придумываешь мемчики:
http://ietfmemes.tumblr.com/
Через mpv должно работать, у него есть -vo caca и возможность энкодинга вывода.
>Color ASCII art video output driver that works on a text console
Нужен не цветной и не вижу настройки чтобы размер шрифта уменьшить. Размер выходного файла отдельно от этого параметра прописывать?
Находил, но не смог установить. Пишет нужно выполнить это.
./configure
make
make install
На втором или третям шаге ошибки.
Вот как въебать бы тебе молотком по голове!
Лол, не в тот тред.
Мод, проси Абу для тех кто поле почта заполняет включать капчу, иначе боты рендомные заебут
Напиши скрипт - попросит.
некрофила ответ, но всеже.
нахуй все автоматизировать, может и еблю - кнопку нажал - выебал?
Двач научил полезному!
От самого видео это разве не зависит? Если сцены разные постоянно, то и прыгать должен, у меня скачет только так. Вроде ещё -qcomp задаёт ширину "скачков" от 0 cbr до 1 vbr.
Получилось!
Ещё как зависит!
Есть внешние субтитры на видосике с трубы для тупых, они не являются частью видеоряда, как можно запилить ШЕБМ с этими субтитрами?
https://gist.github.com/anonymous/3a51256a326cc50b13f7
Держи. 9000 часов в виме.
Пока только PCF, без поддержки атрибутов символов и ресайз нормальный я не осилил. Могу скинуть бинарь, если надо. Использовать так:
ffmpeg -i in.mkv -f rawvideo -pix_fmt gray - |\
y2aa -w 1280 -h 720 - |\
ffmpeg -f rawvideo -pixel_format gray -video_size 1280x720 -i - out.mkv
(Такие вебмки, кстати, сносят крышу напрочь рейт-контролю libvpx, еле закодировал в лимит.)
>Javan Whistling Duck Release Candidate
>The release will be ABI incompatible with 1.4.0. It removes the long deprecated controls VP8E_UPD_ENTROPY, VP8E_UPD_REFERENCE and VP8E_USE_REFERENCE. VP8 gains a new screen content mode. VP9 gains VP9E_GET_ACTIVE_MAP, VP9E_SET_RENDER_SIZE, VP9E_SET_COLOR_RANGE, VP9E_SET_[MIN|MAX]_GF_INTERVAL, and VP9_SET_SKIP_LOOP_FILTER.
>What's new?
> - The above codec controls
> - Substantially improved VP9 encoding speed and quality
> - Improvements to VP9 decode speed including algorithmic changes to the multi threaded decoder.
Угу, я уже соснул со сборкой ffmpeg'а 2.8.1. Пришлось откатываться на релизный libvpx.
Что с этим делать? Нужно как-то скомпилировать в файл с названием y2aa ?
мимо-тоже-захотел-вебм-в-ascii
Бери ffmpeg из гита, там починили.
>>1442502
→ >>1433405 и выше.
Если ты имеешь ввиду один и тот же набор картинок (количество кадров одинаковое), просто с разной скоростью проигрываются, то разницы не должно быть.
>>1442563
Ставишь rustc и cargo. Пишешь cargo new --bin y2aa, заходишь в директорию и заменяешь Cargo.toml и main.rs на файлы из гиста. Затем cargo build --release и получаешь бинарь в target/release/y2aa. В системе должны стоять freetype и aalib (только shared либы, dev-версии пакетов не нужны).
Недавно просто тренд был на форчане, как можно разнообразный контент на ютуб заливать. Короче делается архив с intel и amd, разбивается на равные куски по 2,95кб, это кодируется с помощью qr кода 40L. Около 20-30 штук таких кодов помещается на 4K картинку, а после такие картинки склеиваются в видео и отправляются на ютуб в 60 фпс.
Проблема лишь в том, не испортит ли ютуб картинку, нет ли алгоритмов, делающих картинку в высоком фпс похуже.
>Проблема лишь в том, не испортит ли ютуб картинку
Конечно испортит, у него ж не лосслесс кодирование, а lossy и с очень плохим качеством к тому же. Компенсируется размером и частотой появления QR. Даст ли 60fps вместо 30 возможность поместить в два раза больше информации или только 1.5 — надо экспериментировать. Зависит от того, насколько больше они битрейта выделяют под 60fps. Они и на 1080p24 жмотятся так, что вся картинка в мелком шуме.
>как можно разнообразный контент на ютуб заливать
Практичность уровня «облачное хранилище из писем gmail».
>>1442499
Ещё можно временно использовать libvpx до коммита https://chromium.googlesource.com/webm/libvpx/+/849e54cedd5efbd0841b32a757cecca9b921e153%5E1..849e54cedd5efbd0841b32a757cecca9b921e153/ Всего 9 дней назад было.
>Практичность
Неограниченное хранилище же! Забесплатно!
>Конечно испортит
Ну qr же задумывался как помехоустойчивый, на это расчет.
> Бери ffmpeg из гита, там починили.
А если с ним половина софта не соберётся? Там тоже API меняют только так.
На десктопе с кучей софта проще иметь в системе релизные версии.
>>1442723
> Ещё можно временно использовать libvpx до коммита
Можно, да. Но мне было лень искать коммит и делать костыль с его указанием в /etc/paludis/bashrc.
>На десктопе с кучей софта проще иметь в системе релизные версии.
Использую полгода ffmpeg из гита на десктопе, никаких проблем. Софта, который использует ffmpeg, впрочем, немного и mpv тоже из гита. Но сидеть на старье в любом софте, от которого ждёшь хороших результатов, бессмысленно. В гите все последние фичи и фиксы.
>и делать костыль с его указанием в /etc/paludis/bashrc
Можно просто скопировать ебилд в локальный оверлей и прописать EGIT_COMMIT.
> Софта, который использует ffmpeg, впрочем, немного
Если у тебя один mpv, то, конечно, никаких проблем. У меня просто софта чуть больше:
( cave print-dependent-ids 'virtual/ffmpeg'; cave print-dependent-ids media-video/ffmpeg;) | sort
kde-apps/ffmpegthumbs-5.9999:5::installed
kde-apps/kdenlive-15.08.2:5::installed
kde-frameworks/kfilemetadata-5.15.0:5::installed
media-gfx/blender-2.72b-r3:0::installed
media-gfx/synfig-9999:0::installed
media-libs/chromaprint-1.2:0::installed
media-libs/ffmpegsource-2.20:0::installed
media-libs/gegl-0.2.0-r2:0::installed
media-libs/mlt-9999:0::installed
media-libs/opencv-3.0.0:0::installed
media-libs/vapoursynth-28-r2:0::installed
media-plugins/alsa-plugins-1.0.29-r1:0::installed
media-plugins/gst-plugins-ffmpeg-0.10.13_p201211-r4:0.10::installed
media-plugins/gst-plugins-libav-1.4.5-r2:1.0::installed
media-sound/deadbeef-0.6.1:0::installed
media-sound/moc-2.6_alpha1:0::installed
media-video/lives-1.4.6:0::installed
media-video/mplayer-1.2-r1:0::installed
media-video/mpv-0.11.0-r1:0::installed
media-video/vlc-2.2.1:0::installed
media-video/x264-encoder-0.0.20151011:0::installed
net-im/qtox-9999:0::installed
net-misc/freerdp-1.2.1_pre20150326-r1:0::installed
> Софта, который использует ffmpeg, впрочем, немного
Если у тебя один mpv, то, конечно, никаких проблем. У меня просто софта чуть больше:
( cave print-dependent-ids 'virtual/ffmpeg'; cave print-dependent-ids media-video/ffmpeg;) | sort
kde-apps/ffmpegthumbs-5.9999:5::installed
kde-apps/kdenlive-15.08.2:5::installed
kde-frameworks/kfilemetadata-5.15.0:5::installed
media-gfx/blender-2.72b-r3:0::installed
media-gfx/synfig-9999:0::installed
media-libs/chromaprint-1.2:0::installed
media-libs/ffmpegsource-2.20:0::installed
media-libs/gegl-0.2.0-r2:0::installed
media-libs/mlt-9999:0::installed
media-libs/opencv-3.0.0:0::installed
media-libs/vapoursynth-28-r2:0::installed
media-plugins/alsa-plugins-1.0.29-r1:0::installed
media-plugins/gst-plugins-ffmpeg-0.10.13_p201211-r4:0.10::installed
media-plugins/gst-plugins-libav-1.4.5-r2:1.0::installed
media-sound/deadbeef-0.6.1:0::installed
media-sound/moc-2.6_alpha1:0::installed
media-video/lives-1.4.6:0::installed
media-video/mplayer-1.2-r1:0::installed
media-video/mpv-0.11.0-r1:0::installed
media-video/vlc-2.2.1:0::installed
media-video/x264-encoder-0.0.20151011:0::installed
net-im/qtox-9999:0::installed
net-misc/freerdp-1.2.1_pre20150326-r1:0::installed
Ты FAQ-то читал? Специально добавили для таких умных:
>В случае блокировки аудитория Рутрекера уменьшится примерно в 2-3 раза и многие раздачи также "погибнут".
Легко говорить за себя, а когда приходится работать с многомилионной аудиторией, решение должно быть хорошо взвешенным.
Считаю на 2-pass
(maxsize_k - audiosize_k) 8 / time_s = bvk
В моём случае
10240 - 293 8 / 40 = 1989.4
Дальше делаю
ffmpeg -i mp4.mp4 -c:v libvpx-vp9 -b:v 1989k -c:a libopus -b:a 64k -ac 2 -sn -pass 1 webm.webm
ffmpeg -i mp4.mp4 -c:v libvpx-vp9 -b:v 1989k -c:a libopus -b:a 64k -ac 2 -sn -pass 2 -y webm.webm
Гуд, 9.98м.
И тут вопросы:
1. -pass 2. 0.4 fps. Это норма 40 сек, бля, больше часа кодить? Как быстрее сделать?
2. Хули перематываеться такими большими кусками? Мне надо больше ключевых кадров или чего, и как?
3. (maxsize_k - audiosize_k) * 8 / time_s = bvk Что это за магическая константа 8?
1. Норм, если проц слабоват, а видиво фулл ашди.
2. Добавь параметр -g 30 и будет ключевой кадр не более чем через каждые 30 кадров.
3. Количество бит в байте.
Хуита, те же 0.4.
>>1443422
>1. Норм, если проц слабоват, а видиво фулл ашди.
Та ну нах епта. С libx264 30-40fps. На том же видиво.
Буду в vp8 значит делать, там хоть 4-7fps.
>3. Количество бит в байте.
спс
>2. Добавь параметр -g 30 и будет ключевой кадр не более чем через каждые 30 кадров.
Я вот ещё в доке нагуглил -force_key_frames expr:gte(t,n_forced*5) каждые 5 сек. Чем оно от -g отличается?
>Я вот ещё в доке нагуглил -force_key_frames expr:gte(t,n_forced*5) каждые 5 сек. Чем оно от -g отличается?
Вопрос снят, сам понял.
В настройках самой борды можно включить панель размеки в форме постинга. Ну и помнить про то, что макака сломал звёздочки и для знака умножения лучше использовать Икс.
-vf scale=720:-1
Как от результата 720х405 отрезать 1 пиксель с низу?
-vf scale=720:-1 -vf crop=wut?
Первая новость на главной
>>1443241
Это сильно преувеличено, сейчас уже каждый хомячок знает про прокси-шмокси, разве что процентов 10-20 мммаксимум васянов не додумаются сами, и то, через пару месяцев всё равно подключатся. Вообще мне кажется, что там есть какой-то подводный камень, из-за которого рутрекер начал содействовать копирайтерам, вангую они проплачивали администрации за это, а теперь денежки кончились и торенты решили пидорнуть, или ещё что-то, у такого большого ресурса 100% должна быть какая-нибудь закулисная игра.
Попробуй -vf "scale=-720:-1, crop=720:404:0:1"
>Наконец-то станут нормальным пиратотрекером как остальные.
C нулем сидов на всем, кроме репачков и порнушки. Как на руторе, фриторрентсе и пиратской бухте. Единственное, что они смогли хорошо сделать - удержать людей на сидировании, там даже рейтинг убрали, а раздача все равно идет почти везде.
Для сидирования тебе прокси не понадобится.
Так повсюду такая хуйня: чуть копнёшь поглубже — сразу находишь изъяны распространённых решений. Перфекционизм — опасная штука, да ещё и заразная, к тому же.
>>1433405
> Патч также ломает рейт-контроль, но в обратную сторону, лол. Улучшений по сравнению с дефолтом нет, даже наоборот.
Т.е. без работы над libvpx вообще нет смысла это запиливать. Понятно.
>>1443839
> с низу
Слитно.
> Как от результата 720х405 отрезать 1 пиксель снизу?
-vf scale=720:-1,crop=iw:trunc(ih/2)/0.5
Можно и не отрезать, а масштабировать до чётной величины:
-vf scale=720:trunc(720/dar/2)/0.5
Что из этого лучше — ещё вопрос.
>>1443927
Что-то мне подсказывает, что будет наоборот: отвалятся в основном порнобляди.
>с 2 кнопками "Старт" и "Куда сохранить готовый файл, милорд?"
https://www.youtube.com/watch?v=Kb1HuZczYtY
>Т.е. без работы над libvpx вообще нет смысла это запиливать
Мне, кстати, пояснили, что лучше бы с денойз фильтров вообще начинать. Есть шанс, что кодек неэффективно убирает дубли из-за шума (обрати внимание, кстати, на меняющиеся символы в ASCII-версии даже на статичных областях >>1442439 ; подозреваю, что это оно и есть).
По-хорошему надо сделать разные версии энкодов:
1) Оригинал
2) Денойз
3) Дедуп
и сравнить размеры пакетов в каждом случае. А то как-то маловато результатов экспериментов, в основном домыслы.
>чуть копнёшь поглубже — сразу находишь изъяны распространённых решений
Особенно фигово когда ты ненастоящий энкодер и ffmpeg на стройке нашёл. Столько лет наработок в этом направлении, разных техник, фильтров вроде тех же denoise, dedup, 2d cleaner, которые могли бы помочь значительно выправлять качество в плохих случаях, а ты ничего про это не знаешь, блин.
Test
Скорее всего второе. В нем хотя бы понятно будет, плавающий рассинхрон или нет. Хотя в ffmpeg наверняка есть какой-нибудь таймстретч, но придется наугад хреначить.
Ты смотри, и правда есть atempo. Только непонятно, меняет ли он тон https://ffmpeg.org/ffmpeg-filters.html#atempo
В анимублядском последняя строчка шапки, кнопок много (более 2), но жмет не хуже ффмпега (она им и жмет, внезапно).
> Есть шанс, что кодек неэффективно убирает дубли из-за шума (обрати внимание, кстати, на меняющиеся символы в ASCII-версии даже на статичных областях >>1442439 ; подозреваю, что это оно и есть
Смешная хуйня получается: выходит, кодек сначала распидорашивает картинку, и только потом начинает искать дубли?
> По-хорошему надо сделать разные версии энкодов:
1) Оригинал
2) Денойз
3) Дедуп
и сравнить размеры пакетов в каждом случае.
Погоди. У тебя что, на вход энкодера подаётся распидорашенная картинка?
> Особенно фигово когда ты ненастоящий энкодер и ffmpeg на стройке нашёл. Столько лет наработок в этом направлении, разных техник, фильтров вроде тех же denoise, dedup, 2d cleaner, которые могли бы помочь значительно выправлять качество в плохих случаях, а ты ничего про это не знаешь, блин.
Хреново, конечно, но что поделать. Владельцы знаний всегда будут в таких вещах в преимуществе.
Другое дело, что неидеальной картинки может быть достаточно для выполнения поставленной задачи. Вон, взять тех же порноблядей — квадраты им дрочить не мешают.
Можно, если перекодировать в любой другой поддерживаемый формат.
> Нет ли возможности с помощью ффмпега пофиксить плавающий рассинхрон звука и видео?
Есть: фильтры asetrate и aresample. Делишь частоту звука на коэффициент сползания (он от этого ускоряется) и ресэмплишь обратно до стандартного значения 44100 или 48000Hz.
Хотя мб будет достаточно и одного фильтра atempo.
Ещё можно изменить тайминги кадров фильтром setpts, но перекодировать видео дольше.
Фильтр asetpts использовать даже не пытайся, т.к. с ним нарушится непрерывность потока сэмплов.
Вебм это вообще контейнер. А так ffmpeg это самый мощный комбайн из всех существующих на рынке транскодеров, если что. Ещё и свободный к тому же.
>>1445230
>кодек сначала распидорашивает картинку
Может в оригинале было? Хотя вот здесь есть кое-какие пояснения по поводу луп-фильтра, но я до сих пор плохо представляю, как оно всё вместе работает:
http://permalink.gmane.org/gmane.comp.multimedia.webm.user/7097
>У тебя что, на вход энкодера подаётся распидорашенная картинка?
Нет, обычный аниме-исходник. Просто вот тебе 2 последовательных, не отличимых на глаз кадра ([Commie] Plastic Memories - 01 [D921F939].mkv, 12:35.046, 12:35.088) и дифф между ними. Неплохо так, да?
Можно и на GPU, но результаты не блещут. Если надо хреново, но быстро, разве что. Крупнейшие видео-хостинги (Youtube, Netflix) используют обычные софтварные реализации.
Двойная точность не к черту, на игровых видюхах режется ради продажи проф решений по цене в 10 раз дороже.
Что за точность, как это будет на видео выглядеть? Просто у меня одноядерный атлон и на нём всё уж слишком медленно кодируется, подумываю кодировать на видеокарте (HD4650)
Сложнее реализация? Хотя, интелловский вроде ничего:
https://software.intel.com/en-us/blogs/2015/10/23/intel-media-server-studio-hevc-codec-wins-transcoding-title
http://compression.ru/video/codec_comparison/hevc_2015/
Но он стоит $4к и только на последних зеонах работает, ололо:
https://software.intel.com/en-us/intel-media-server-studio/details
>>1445292
>подумываю кодировать на видеокарте (HD4650)
Ты вначале найди под неё нормальный энкодер, а потом подумывай. Если он вообще есть.
Да и всё это маркетинговый буллшит. Инженеры не стоят на месте, пилятся VP10, NetVC. Через пару лет будут более эффективные форматы и софтварные реализации под них, а стоимость аппаратных решений так и не окупится. По крайней мере в любительском применении.
То есть чтобы кодировать через видеокарту нужно покупать какие-то мокрописьки?
Для начала, о кодере для вебм (vp8-9) на видеокартах ничего неизвестно, если видел такие, то давай ссылку. Т.е. покупать нечего. Для h.264 они есть.
Ну можешь купить какую-нибудь топовую nvidia, вроде GTX 970 и использовать nvenc, см. http://habrahabr.ru/post/262507/
nvenc в ffmpeg поддерживается, SDK бесплатное, хоть и проприетарное. Только вот качество будет хуже чем x264/x265 в medium. Т.е. отсос. (И да, это для HEVC, если что.)
На самом быстром, который можешь себе позволить? Бери Skylake E3, ололо.
Можно ли кодирование в ffmpeg поставить на паузу или остановить или что то в этом роде? Если там срочно уйти надо, например.
Хотя я вспомнил. На винде ProcessExplorer умеет приостанавливать процесс.
>>1445253
Кстати, сейчас осознал, что vo=aalib/vo=caca реально хороший индиактор зашумлённости видео. Раньше тоже как-то запускал вывод в ASCII и не мог понять, отчего всё дрожит. Надо с денойзом перед y2aa поэкспериментировать и попробоваться добиться идеально статичных поверхностей. Быть может и dedup/mpdecimate тогда не понадобится — ведь с в точности одинаковыми картинками кодек и сам хорошо справляется. (По крайней мере в паттерне X, X, X, ...; насчёт X X Y Y Z Z не уверен.)
Я ебал капчу, кстати.
А уйти и оставить его кодировать — не? Можно ещё нарисовать однострочник, который выключит или засуспендит компьютер после завершения процесса ffmpeg.
Ах, блядь, точно ведь, я слепой мудак. Спасибо.
Бл от
А вот во что превращается разница между двумя одинаковыми кадрами после энкода. Не всё так плохо, кажется. Размеры пакетов: 8986 и 193. Чётко видно, что практически вся разница идёт по границам суперблоков. Т.е. всего-навсего разный deblock. Но надо нормально посравнивать покадрово в любом случае.
> The --lag-in-frames parameter defines an upper limit on the number of frames into the future that the encoder can look.
Ставь 25 и забудь про него.
Бамп вопросу.
Это что-то вроде подзагрузки видео во время онлайн просмотра?
А я вот это, кстати, не нашел. Просто много где оно фигурирует в строках для энкодинга, зачем?
На случай если поменяют умолчания. Или просто по привычке. В общем-то без разницы, главное знать, какие настройки будут использоваться на самом деле. Проверить можно с помощью -loglevel debug.
>When --auto-alt-ref is enabled the default mode of operation is to either populate the buffer with a copy of the previous golden frame when this frame is updated, or with a copy of a frame derived from some point of time in the future (the choice is made automatically by the encoder). The --lag-in-frames parameter defines an upper limit on the number of frames into the future that the encoder can look.
Что тебе в данной цитате непонятно?
Можно ссылку где это написано? Что такое auto-alt-ref? И я не совсем понял что такое золотой кадр. Как я понял, лаг-ин-фрамес это количество кадров, которые загружаются в кодек чтобы их просчитать по степени быстроты изменения сцены видео и выдать им варьируемый битрейт. Но я не понял как это будет происходить. Если указать максимальное число 25 то что будет: вычисления будут точнее но медленее? А если указать меньшее число то наоборот?
Аналог B-frame, но при проигрывании не отображаеся. Почитай ссылки отсюда для начала:
https://github.com/Kagami/webm.py/wiki/Lowlevel-VPx-details
Кстати, внезапно:
>As you might know, the more detail a frame has, the more difficult it is to compress it. This means that Lanczos is NOT suited for low bitrate video, the various Bicubic flavours are much better for this. If however you have enough bitrate then using Lanczos will give you a better picture, but in general I do not recommend using it for 1 CD rips because the bitrate is usually too low (there are exceptions of course).
Может -sws_flags lanczos сжимаемость ухудшает. Надо бы с bilinear попробовать.
Это наверно тот кун с одноядерным атлоном, твой телефон возможно мощнее.
>Может -sws_flags lanczos сжимаемость ухудшает
Подтверждаю, было такое, пришлось от него отказаться.
>Could not write header for output file #0 (incorrect codec parameters ?): Error number -1 occurred как сделать чтобы работало?
И ещё после перекодирование мп4 в vp9 распидорашивает первые несколько секунд видео. Почему?
Тоже блюрит, но качество получше, чем bilinear. В mpv с vo=opengl-hq, spline36 дефолтный ресемплер.
Вот, например: http://compare.bakashots.me/compare.php?setId=1410&comparisonId=8735&imageNum=2
Везде мыло, кроме bicubic (catrom).
> Не получается склеить видео с аудиодорожкой в контейнер AVI
Дорожки каких форматов ты пытаешься туда запихнуть? Контейнер AVI поддерживает их далеко не все: например, он не может в H.264 с B-фреймами и в mp3 с переменным битрейтом.
> И ещё после перекодирование мп4 в vp9 распидорашивает первые несколько секунд видео. Почему?
Если уровень квантизации выше чем у остального видео, то ты кодируешь одним проходом;
если как на пике, то проблема на стороне декодирования.
Вот в процессоре, скажем, заявлено какое-то хардварное кодирование видео. Что это вообще означает и как поиметь с этого профиты? Нужно какие-то специальные библиотеки использовать, или оно автоматом включается?
>не может в H.264 с B-фреймами
Может. Сам стандарт контейнера их не запрещает и тысячи таких энкодов прекрастно делаются.
>mp3 с переменным битрейтом
Может. «There is a value in the stream headers, called dwSampleSize, which is 0 in order to trigger VBR stream seeking. This is officially documented in the MSDN and not a hack, bug or whatever. The way MP3-VBR and AAC are stored in AVI are specified and completely compliant with the AVI file specification.» Не все демуксеры поддерживают, но это их проблемы.
>квантизации
Квантования.
>то проблема на стороне декодирования
Или пытается обрезать с -c copy не по ключевым кадрам или ещё какая херня.
>>1447600
>Что это вообще означает
Просто отдельный блок вычислений на чипе? См, например, https://en.wikipedia.org/wiki/Intel_Quick_Sync_Video
>и как поиметь с этого профиты
Реальных профитов практически нет, а просто чтобы поиграться, достаточно иметь поддержку в драйвере и транскодере. Тот же QSV в ffmpeg'е поддерживается, нужно поставить драйвер/Intel Media SDK и скомпилировать.
В шакалах.
strace -p <pid>
Пасиба.
> максимальный размер файла: 20480КБ в /b/ и /media/, 6144КБ в тематике
Но у меня не отправляется файл размером 5132кб, ЧЯДНТ?
Дано:
background.mp3
1.mp3 2.mp3
1.png 2.png 3.png
hint.png
Нужно из этого получить видеофайл, где:
background.mp3 играет от начала до конца
1.mp3 и 2.mp3 играют на определенных участках
1, 2 и 3.png сменяют друг друга с заданной скоростью
hint.png в определенный момент появляется, накладываясь на картинку, длится некоторое время и исчезает.
Нужна команда ffmpeg, чтобы это сделать. Благодарю, как минимум, за внимание. Сам со временем в любом случае разберусь как это сделать, но если поможете, буду благодарен за ускорение.
https://datatracker.ietf.org/meeting/94/agenda/netvc/
Как минимум несколько докладов выглядят интересно.
Ещё в thor слили все наработки одним громадным коммитом:
https://github.com/cisco/thor/pull/28
Все эти их заявления об открытости и порицания политики гугля в отношении участия коммьюнити, ясное дело, только на словах:
http://blogs.cisco.com/collaboration/world-meet-thor-a-project-to-hammer-out-a-royalty-free-video-codec
ffmpeg \
-loop 0 -r <скорость в fps> -i %1d.png \
-i background.mp3 \
-i 1.mp3 \
-i 2.mp3 \
-lavfi 'anullsrc,atrim=end=<начало 1.mp3>[a0-0];
[a0-0][2:a]concat=v=0:a=1,apad=whole_len=<начало 2.mp3>[a0];
[1:a][a0]amix[a]' \
-map 0:v -map '[a]' -shortest out.mkv
Если нужно меньше 1 fps, то видеодорожку надо хуячить фильтром setpts.
Забыл прилепить 2.mp3. По аналогии с 1.mp3:
'[a0-1][3:a]concat=v=0:a=1[a0]', где [a0-1] — вывод фильтра apad.
Да. Если указывать -ss на выходе, то он декодирует все кадры от начала. Надо на входе.
>>1447871
> Квантования.
Бля. Надо покупать новый мозг: в старом это слишком прочно засело.
> Может.
Погуглил, действительно так: не могут только реализации от спермософта.
Ты ведь об этом тоже уже здесь писал, да?
> Или пытается обрезать с -c copy не по ключевым кадрам
Но он же пишет что кодирует из какого-то mp4-совместимого формата в vp9.
>Реальных профитов практически нет
Это у процессороблядей нету, а вот у нвидиябогов h265 в 100 FPS кококодируется!
Вейт, quicksync использует же встроенное видео для обработки, я зачастую пишется о раздельном кодировании по типу "Используется gpu" и "Hardware"
Может там какие-то алгоритмы в процессор зашиты? Впрочем, ладно. Вот конкретно в скайлейках есть "Частичная поддержка кодирования/декодирования vp9"
Что с этим делать теперь? Это тоже на quicksync завязано?
Так однострочник для спермы есть или нет? И так никто и не ответил на вопрос, лучше юзать
>-force_key_frames expr:gte(t,n_forced*5)
Или -g 150. Если похуй, то вставьте любой из этих вариантов в вики, т.к. меня доебало уже в анимублядском ждать пока промотается вебмка. А особенно объяснять это кому-то.
С качеством хуже, чем x264 -preset medium? Ну и кому оно такое надо?
>>1448975
>Вейт, quicksync использует же встроенное видео для обработки
Да, на встроенном GPU, который также на чипе. (Хотя, декодирование, как пишут, может быть и отдельным блоком: http://www.anandtech.com/show/4083/the-sandy-bridge-review-intel-core-i7-2600k-i5-2500k-core-i3-2100-tested/8 )
>Может там какие-то алгоритмы в процессор зашиты?
Формат (или его основные ресурсоёмкие примитивы) поддерживается аппаратно, так что, грубо говоря, да. У тебя, допустим, библиотека аппаратного энкодера предоставляет функцию encode_h264_frame, из которой motion esimation/entropy coding прям зашиты в железку.
>Это тоже на quicksync завязано?
Да, как я понял. И для VP9 только декодирование.
>>1448981
>Так однострочник для спермы есть или нет?
Это он и есть. Для повершелла.
На Твиче пару месяцев назад сменили систему водов, старые способы по скачке видео не работают. Ранее с ffmpeg не работал, но слышал, что он хорошо умеет в такие вещи.
Только что проверил, всё через youtube-dl скачивается. И без лишних пережатий, стрим напрямую копирует.
Я ебал этот идиотский спам-лист, кстати. Реальный спам никто не чистит >>1438476 >>1439840 , а какую-то хуйню, из-за которой половина сообщений с копипастой из консоли не постится, используют. Охуеть свободное общение.
>Это он и есть. Для повершелла.
Спасибо. Жаль только он не пишет отрезки времени для ключевых кадров. Просто число не слишком полезно.
Блин, не отрезки времени, а просто время, спать уже пора.
ffprobe -loglevel quiet -show_frames -select_streams v -of compact file.webm | Select-String -Pattern key_frame=1
В поле pkt_pts_time — время в секундах. Или в файл весь вывод сохранить и по Ctrl+F смотреть. Или через webm_info. Или mkvinfo -v -v -v. Вариантов куча.
Полосы динамически-плавающие, если кропать по самой широкой видео чутка потеряется, по самой узкой они появляться будут. Думаешь так менее уродливо?
А вот у меня нет. Делаю как этот http://www.youtube.com/watch?v=8iMxJ52o-bI
Возврат от сервера. HTTP error 400 Bad Request
Исходный вод: http://www.twitch.tv/headstrong1290/v/21249108.
Хуярь pan & scan, ололо:
https://www.youtube.com/watch?v=gwsvewJ4HTo
Ну а так-то похуй, конечно.
>>1449103
У меня и этот скачивает. Проверяй версию youtube-dl (youtube-dl --version). Должна быть 2015.11.01.
И ещё раз спасибо.
Нашёл косяк, пошла загрузка, спасибо. Не могу только настроить старт с начала видео. Приходится выставлять -ss 00:00:01. Как нужно прописывать?
>Качество ведь не должно пострадать, т. к. человек не способен различать больше 24 кадров, верно?
Вторая часть неверная, с первой частью никак не связана.
я неправильно изъяснился. Картинки должны не каруселью сменяться в страшном цикле смерти, а как 1,2,3.mp3 - начинаться и заканчиваться на определенных местах видео. Например, первая картинка от начала и до 22%, вторая от 22% до 85%, и третья оттуда до конца. Попробую сделать это по аналогии с указанным тобой способом со звуками позже днем.
Спасибо!
Ты же хочешь фпс понизить, причем тут битрейт? Про битрейт можешь почитать пачкой постов выше, как человеку помогали, походу твой случай.
>Качество ведь не должно пострадать
Качество видео в целом может пострадать. Если видео было 60 фпс, а ты урезал до 25 или было в 25 фпс, а ты интерполировал до 60, то может пропасть синергия звука с видеорядом, например, когда видеоряд подстраивается под ритм музыки.
Аноны, что за хуйня?
Скачал ffpmeg с официального сайта, а в архиве нет ни папки bin ни хоть одного exe-шника.
Что тут можно неправильно скачать? Написано download FFMPEG. Даже на форчане ссылка именно на эту страницу.
Спасибо!
Странно, что нигде не даётся ссылка именно на зераное. Вводят людей в заблуждение.
http://ffmpeg.zeranoe.com/builds/
https://codeload.github.com/rdp/ffmpeg-windows-build-helpers/zip/master
Отсюда качай @ распаковывай в C:\ @ батник запускай native_build/build_locally_XXX.bat
и у тебя будет свой пропердоленный ffmpeg с поддержкой аппаратного кодирования
https://github.com/rdp/ffmpeg-windows-build-helpers
Есть ли что-нибудь быстрее libvpx-vp9 ffmpeg'а для vp9? Находил новости какой-то кодек ffvp9 от их команды, но на деле его нигде нет. Или может есть что-то быстрее самого ffmpeg'а?
А с какого фига неофициальные билды от левого чувака должны быть на первом месте? Основное, что даёт их проект — исходники. Как это превратить в бинарь уже дело десятое. При том, что нет единственно правильного способа сделать бинарь, т.к. фич очень много и сборщики их все не включают.
>>1449483
ffvp9 это декодер. Из альтернативных энкодеров только это http://www.webmproject.org/hardware/vp9/bige/ вроде бы есть. А так, от ffmpeg, libav или ещё какой прослойки, кодирование не зависит абсолютно. Всё, что они делают, — декодируют исходное видео и покадрово скармливают libvpx.
Т.е. можно не надеяться, что в ближайшее время появится энкодер быстрее нынешнего?
> человек не способен различать больше 24 кадров
Откуда вы вообще берёте этот бред?
24 кадра в секунду — примерный порог, на котором мозг начинает делать интерполяцию движения между кадрами, в результате чего они воспринимаются как непрерывное движение. И это значение зависит от многих факторов — психического состояния зрителя, характера анимации, размера и расстояния до экрана.
Чем больше в видеоряде частота кадров, тем легче он воспринимается и тем плавнее кажется картинка. Например, с использованием чересстрочности в аналоговом эфирном телевидении показывают 50 кадров в секунду.
Для смены частоты кадров на указанную постоянную без воздействия на скорость воспроизведения видео ffmpeg имеет два фильтра: fps и framerate. Первый выкидывает или дублирует кадры, второй вместо дублирования делает интерполяцию.
>>1449457
> Странно, что нигде не даётся ссылка именно на зераное.
А может, лучше на пакет для debian sid дать ссылку? Или на ебилд для gentoo.
Хочешь использовать продвинутые инструменты —
не будь умственно отсталым. В противном случае пользуйся адекватным твоим способностям софтом.
>>1449483
ffvp9 входит в состав ffmpeg, см. ffmpeg -codecs.
Но это только декодер.
>ffvp9 входит в состав ffmpeg, см. ffmpeg -codecs.
>Но это только декодер.
Смотрел уже, нету его там. Да и если декодер, то он мне не нужон.
Ну вп9 нужен гуглу, они и запилили этот слоупочный энкодер. Кроме них никто быстрый не сделает (т.к. похуй), т.ч. остается ждать когда повысят производительность в libvpx.
>нету его там
decoders: vp9 ← вот это оно и есть.
libvpx-vp9 тоже для декодирования можно использовать. Особенно раньше, когда ffvp9 не умел дополнительные профили.
ffmpeg -f image2 -i %d.png video.mpg
ffmpeg -i video.mpg -filter:v "setpts=100*PTS" video2.mpg
и второе, удлиненное видео, получается четырехсекундным показом первой пикчи. Где вторая?
Нахуя ты вообще делаешь промежуточный файл?
> Где вторая?
Появляется на 1/25 секунды, наверно. Timebase и pkt_duration-то ты не менял.
только учусь, хочу чтобы на каждом шаге было что-то готовое и работающее
>Timebase и pkt_duration-то ты не менял.
что это такое и как поменять?
пробовал -vf "transpose=x", видео на выходе в 3 раза меньше весит
> только учусь, хочу чтобы на каждом шаге было что-то готовое и работающее
Тогда не сохраняй промежуточные результаты в lossy-форматы хотя бы. Используй кодеки ffvhuff и flac, например.
> что это такое
Timebase — длительность единицы PTS, pkt_duration — время отображения кадра.
> и как поменять?
Укажи -r на входе с картинками. Если нужно меньше 1fps, то можешь продублировать второй кадр, это на правах костыля.
Никак. Видео — это не жпег, и ориентации камеры в его заголовках нет. Фильтр transpose требует перекодирования.
что значит "продублировать второй кадр"?
и если кадров больше двух, и мне нужна скорость меньше 1fps, то будет ли это все еще работать?
>Фильтр transpose требует перекодирова
Вот это пробовал
http://superuser.com/questions/578321/how-to-flip-a-video-180-vertical-upside-down-with-ffmpeg/
>You need a build that includes commit 1630224, from 2 May 2015, to be able to use the autorotation feature.
ffmpeg скочал 12 октября
в metadata написано rotate: 90
прописал такую команду:
ffmpeg -i in.mp4 -c:a copy out.mp4
видео опять в 3 раза меньше.
Смотри: проблема в том, что длительность показа кадра фильтром setpts не меняется. Результат его применения — «прерывистый» видеоряд, который всеми плеерами (вроде) воспроизводится тем не менее непрерывно — отсутствие кадра для воспроизведения не приводит к очистке картинки, но к последнему кадру это не относится.
Предложенный костыль — добавить ещё кадр в конец.
Ещё вариант — попробовать поколдовать с timebase (фильтр settb). Так, оставив PTS и pkt_duration (который тоже исчисляется в PTS) без изменений, тоже можно изменить скорость воспроизведения.
Есть, есть. И mpv, судя по ману, даже поддерживает. Но то ли я тег другой, то ли сломано, у меня не получается почему-то.
https://stackoverflow.com/questions/15335073/can-i-set-rotation-field-for-a-video-stream-with-ffmpeg
Даа. Значит, нужно найти способы его изменения и софт, который это поддерживает.
видео в таком случае остается повернутым.
Нужно форсить ффмпег делать кейфреймы. Иногда он их не делает. Я знаю эти два способа. Какой лучше?
>у меня не получается почему-то
Please note that this does not actually rotate the video. It just sets the rotation flag, which causes some players to show it in a rotated way
Ну так у mpv заявлено, что поддерживается.
Ну вот ты и поправь. Я не ебу как там в гитхабе всё делается, ещё наверно и регаться надо, палить свой ник.
> Нужно форсить ффмпег делать кейфреймы.
Зачем?
И не ffmpeg, а libvpx.
> Иногда он их не делает.
Потому что находит общую информацию между сценами, наверно.
> Я знаю эти два способа. Какой лучше?
Зависит от материала и задачи. На этот вопрос не может быть однозначного ответа.
делаю вот так
ffmpeg -framerate 1/5 -i %d.png -c:v libx264 -vf "scale=trunc(iw/2)2:trunc(ih/2)2" -r 1 out.mp4
на второй пикче видео просто дропается
и вторая пикча это та же самая первая, только в гимпе на ней красной кистью "2" написано(думал, может из-за разных размеров и так далее, но нет)
git clone https://github.com/pituz/webm-thread.wiki.git
cd webm-thread.wiki
vim
git commit -a
git format-patch [email protected] --stdout origin | git imap-send
>>1449640
С mp4 получилось, а в mkv сказали что не поддерживается.
а если -r 1 аутпута поменять на -r 2, то вторая пикча в конце мигает только
и еще непонятно, почему при -r 1 аутпута длина видео в vlc показывается 00:06(а дропается на 00:03), а при -r2 становится уже не шесть, а пять секунд, не дропается, и вторая пикча в конце мигает
вообще охуеть какой-то
делаю это
ffmpeg -r 1/5 -i d%.png -c:v libx264 -vf "fps=25,format=yuv420p" out.mp4
по вот этим гайдам
https://trac.ffmpeg.org/wiki/Create%20a%20video%20slideshow%20from%20images
http://stackoverflow.com/questions/24961127/ffmpeg-create-video-from-images
в итоге или десять секунд черноты, если не меняю фпс аутпута, или миг второй пикчи в самом конце, если меняю
=(
> ffmpeg -r 1/5 -i d%.png -c:v libx264 -vf "fps=25,format=yuv420p" out.mp4
Фильтр fps не может в pkt_duration и прекращает дублировать кадры при исчерпании входа.
Бля, ффмпег высирает мне вебмки с 1 кейфремом, нихуя он не находит общей информации, какой-то баг видимо. И он у всех это делает, весь анимублядский в этих говновебмках. И да, предлагаю этот параметр использовать по умолчанию, я думаю всем как и мне просто лень будет кодировать, проверять баг, и перекодировывать в случае если он есть. К тому же я даже не знаю минусов этих команд, если они вообще есть, не заметил их. Если не может быть однозначного ответа, значит оба или любой вариант суйте в вики.
> нихуя он не находит общей информации
С чего ты взял? Зафорси кейфрейм там, где ты считаешь что он должен быть, и сравни размер и PSNR результатов.
вот так он себя ведет начиная с конца первых пяти секунд
>К тому же я даже не знаю минусов этих команд
Если размер становится больше, то это минус. В общем-то я согласен, при выигрыше в 0.2 мегабайта, смысла в одном кейфреме на 3 минуты мало. Но 3 минуты сдекодить тоже фигня. Вон в лисе уже ffvp9, который 260 fps на четырёх ядрах на FullHD даёт.
>>1449741
Да было уже сравнение → >>1435105
>PSNR
Ну ты понел.
И теперь эмулируем прыжок в самое неудобную позицию с помощью нормального декодера:
$ time ffmpeg -loglevel quiet -ss 89 -i 14464779230730.webm -frames:v 1 -f null -
ffmpeg -loglevel quiet -ss 89 -i 14464779230730.webm -frames:v 1 -f null - 11.12s user 0.15s system 291% cpu 3.873 total
Всего-то. Для сравнения более вероятный случай:
$ time ffmpeg -loglevel quiet -ss 30 -i 14464779230730.webm -frames:v 1 -f null -
ffmpeg -loglevel quiet -ss 30 -i 14464779230730.webm -frames:v 1 -f null - 2.96s user 0.04s system 270% cpu 1.109 total
Одна секунда. Офигеть как долго.
Говоришь что по утрам в пятницу хуи в жопе не так уж и больно ощущаются? А занять место можно и пораньше.
Ты говоришь так, как будто есть возможность этого избежать. Ты либо теряешь на скорости перемотки, либо в качестве. Что тебе не ясно в понятии «компромисс»?
Я не теряю в качестве из-за 0.3 мб, это очень маленькое число. Кроме того, если бы ффмпег работал нормально, вес был бы больше, а значит я наоборот заставляю его работать правильно, по идее. Предложения компромисса не увидел, 4 кейфрейма это где-то рядом с минимумом, явный перевес в сторону качества которого нет. И почему-то сам ффмпег делает перевес в сторону скорости промотки.
>Я не теряю в качестве из-за 0.3 мб
Как уже было сказано выше, сравнение некорректно. У файлов размер разный не из-за ключевых кадров, а из-за неточности в работе рейт-контроля. Мне почему-то казалось, что у тебя там CRF. При VBR ты сам указываешь итоговый размер, энкодер не может ослушаться только потому, что у тебя ключевых кадров больше стало.
>И почему-то сам ффмпег делает перевес в сторону скорости промотки
Где делает? Как?
>Кроме того, если бы ффмпег работал нормально, вес был бы больше, а значит я наоборот заставляю его работать правильно, по идее
Это вообще не распарсил.
Я не тот анон что тесты проводил. Меня просто заебало проматывать по 2, а иногда и каких-нибудь 10 секунд. Если это нормально, значит у меня проблемы с пониманием что нормально или нет. Я уебал спать.
>При VBR ты сам указываешь итоговый размер
Поподробнее. Как так сделать? Качество не хуже будет? Если такое есть, то почему это скрывают и простые анончики вынуждены кодировать через crf?
>Если это нормально, значит у меня проблемы с пониманием что нормально или нет
Ну, для начала, 0.02bpp это изначально дикий изврат (2 минуты HD для 8МБ лимита: 8×1024×1024×8/(1280×720×24×120)).
В том же аниму, если ты посмотришь, в 3.5 раза больше — около 0.09 (24 минуты HD в 339 мегабайт: 339×1024×1024×8/(1280×720×24×(23×60+42))). При том, что в больших файлах намного больше возможностей скостить битрейт.
Если ты пишешь -b:v и число ты можешь рассчитать битрейт и итоговый размер файла. Но качество будет, вроде как, хуже, чем если ты подберешь нужный -crf при -b:v 0
А я когда пишу -b:v и число, то битрейт получается на +10-15% больше чем указанный, и видео не влазит в размер, при этом суть vbr'a это уменьшать размер конечного видео путём уменьшения битрейта на малодинамичных сценах видео, чего на деле почти никогда не происходит. В общем vbr - кривое говно без задач. Поэтому я пишу -b:v xxxK -vbr off
И выключаешь таким образом VBR у libopus? Ну ты крут.
Вообще, есть специальные настройки -undershoot-pct и -overshoot-pct, которые контролируют пределы перерасхода/недорасхода битрейта. Ну и -qmin/-qmax помогают. Так-то да, VBR в libvpx хреновый.
Да и в аудио вбр тоже выключаю. Как я понял реальное преимущество опуса это то, что у него почти отсутствуют задержки и можно сразу накатывать видеоряд без временной корректировки, поэтому использовать нужно только libopus и считать битрейт самому вручную. Аудио сжимаю в 96 кбит из оригинальных каких-нибудь 128или выше кбит, разницы в звучании почти нет. Если включать вбр в аудио то может происходить заметное ухудшение качества если скажем в кодируемом фильме будет какой-нибудь тихий диалог актёров а остальные сцены будут громкими. И ещё раз, сам вбр работает как-то криво и делает битрейт большим чем нужно, пробовал указывать -maxrate xxxK — не помогает. И ещё я не совсем понял какие настоящие улучшения у vp9 перед vp8, пишут что вп9 лучше кодирует большое >2K разрешение, и что он вроде как лучше заточен под vbr (который работает криво). А ещё я не совсем понял зачем нужно двухпроходное кодирование, по идее оно нужно чтобы более точно вычислять динамичность сцены и делать записи в логфайл для последующего кодирования с vbr, соответственно если вбр отключать то такая необходимость пропадает, ещё пишут что если не делать двух проходов то иногда изображение может дёргать и происходить ухудшении качества — ни того ни другого лично мною замечено не было, выходить что два прохода тоже не нужны.
Ваш ffmpeg такой замечательный, может, он и flac сможет по cue нарезать?
прост пиши правильный ввод
Срыв покровов, ffmpeg - новый emacs
> ни того ни другого лично мною замечено не было
А как проходил сравнение качества? Ты сравнивал файлы одинакового размера?
Было б что писать: https://gist.github.com/bancek/b37b780292540ed2d17d
Только зачем, если уже есть shnsplit? Да и зачем вообще image+cue нарезать? Навеевает 2008-ым, когда не было нормальных плееров под линь и пердолики тратили кучу времени на перевод раздачи из одного формата в другой, т.к. все нарезалки неидеальны и что-нибудь, да не так сделают.
> Microsoft Windows XP
Уже из-за этого можно было дальше не читать.
> Как я понял реальное преимущество опуса это то, что у него почти отсутствуют задержки и можно сразу накатывать видеоряд без временной корректировки
Это имеет значение исключительно для передачи звука в реальном времени.
> пробовал указывать -maxrate xxxK — не помогает
Нет у libopus'а таких крутилок. Все передаваемые ffmpeg'ом параметры можно посмотреть в исходниках: https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/libopusenc.c#L105
Список параметров самой библиотеки можно посмотреть здесь: https://www.opus-codec.org/docs/html_api-1.1.0/group__opus__encoderctls.html
> вбр в аудио то может происходить заметное ухудшение качества если скажем в кодируемом фильме будет какой-нибудь тихий диалог актёров а остальные сцены будут громкими
Допустим, хотя я не замечал. Реквестирую сравнение — исходник и два варианта сжатия, с VBR и без, будем слушать. Хотя из дальнейшего содержимого поста мне кажется, что ничего толкового мы не услышим.
> И ещё я не совсем понял какие настоящие улучшения у vp9 перед vp8
Ну это вообще пушка. Хотя, если сравнение производилось с идиотскими параметрами, могло и не такое получиться.
> и что он вроде как лучше заточен под vbr (который работает криво)
Все эффективные видеокодеки работают в режиме VBR. С CBR получается либо говно с артефактами на каждом шагу, либо лютый перерасход битрейта.3
Пишу -quality best, всё равно жуткие артефакты.
Ничего не изменилось. Может я как-то не так пишу аргументы?
ffmpeg -i in.mkv -ss starttime -to finishtime out.webm -lossless 1
Ну они не были не совсем одинаковых размеров, просто перекодированы из одного источника, ничего такого дефектного не было.
>>1450721
>Уже из-за этого можно было дальше не читать.
Пердтушка спросить забыли.
>Это имеет значение исключительно для передачи звука в реальном времени.
А почему у меня тогда звук от видеоряда запаздывает, а если выбирать опус то всё норм?
>Нет у libopus'а таких крутилок. Все передаваемые ffmpeg'ом параметры можно посмотреть в исходниках:
Ну значит я что-то напутал, какой там тогда параметр ограничивающий битрейт у опуса?
>Допустим, хотя я не замечал.
Ну хуй знает, вот ты и сделай сравнение.
>С CBR получается либо говно с артефактами на каждом шагу, либо лютый перерасход битрейта
Да вроде всё норм получается. Кстати артефакты у меня и правду появились >>1447315 и пару раз не только первые секунды а вообще всё распидорашивало, но там был как раз vb9 с включённым vbr, только я пытался это запихнуть в avi.
Тебе не было чем заняться и ты решил втереть нам какую-то дичь?
в чем проблема со второй webm? почему нет превью? Первую я просто обрезал из видео сразу. Вторую разобрал по кадрам, склеил в webm, приклеил звук. Пришлось это сделать так-как звук в оригинале не воспроизводился,звуковую дорожку я в стороннем редакторе вырезал. Где я накосячил?
не, ну а как именно она называется, блять, что именно на официальном сайте искать
ну вот, например, могу ли я брать каждый второй файл? или, могу ли я использовать его в квадратных скобочках стрим специфаера - [0:v].
[%d:v] - вот так можно? а как можно? где почитать?
>где почитать?
man 3 printf
Это знать надо! А вообще: https://ffmpeg.org/ffmpeg-formats.html#image2-1
хорошо, спрошу по-другому. внутри команды ffmpeg можно задавать циклы?
Ну не стукай, расскажи лучше, как заставить кодировать двумя ядрами хотя бы? Или это ебать сложный не параллелящися процесс?
-threads 4
В шапке крупными буквами где-то написано, есть еще 2 параметра, но они по умолчанию стоят на 4 точно потока, так что ставь -threads 4 и моли Аллаха что бы libvpx-vp9 хоть что-то распаралелел. На 8 потоков прочти шапку.
А там последний ффмпег по-умолчанию уже разве не параллелит? Тогда -frame-parallel 0 -threads 4 -tile-columns 2, например.
Да. Я не представляю, откуда ты взял там "2". Единичку еще можно написать.
Ну че ты сразу-то так не мог, спасибо!
Cпасибо, мил человек, теперь всё заебца.
Сабы не прилепились, однако!
Веб М.
Извини, я не знаю что такое bpp, и не горю желанием узнавать. Ответь на несколько вопросов. Ты считаешь это багом? Если да, может куда-то сообщить об этом чтобы разработчики ффмпега узнали? Второй - ты считаешь стоит прописывать -g каждый раз тем кто кодит вебмки и вбрасывает в анимублядский? Моя позиция - я считаю это багом, несмотря на то что нихрена не знаю про ффмпег. И я считаю что -g стоит прописывать, я уже некоторое время это делаю и не заметил потери в качестве, возможно стоит сделать тесты, но мне как-то лень. Думаю, потерь в качестве в анимублядском никто вообще не заметит никогда, а вот медленную перемотку - ещё как.
то есть, сохраняются существующуе аудио и видеотреки, но аудиотрек модифицируется путем добавление и смешивания поверх его небольшой части другого трека
Это не баг ffmpeg, это особенность libvpx. Пока никто не приводил нормальные тесты, насколько эта особенность дурная.
Я просто не понимаю твой проблемы. Тебе ж уже написали как добавить информацию в вики без регистрации и смс, а ты всё равно чем-то не доволен.
>Это не баг ffmpeg, это особенность libvpx
Я просто уточню - мы говорим про расставление ключевых кадров 2 в начале и 2 в конце?
Тебе объяснить как из исходного файла получается вебм, как связаны ffmpeg и libvpx, что такое контейнер, формат, кодек, библиотека?
Нет, просто ответить да/нет.
я хочу командой с использованием ffmpeg получить на выходе аудиофайл, звучащий "раз, два, три [пауза в x секунд] раз, два, три"
то есть, дупликация файла в заданных параметрах. можно так?
> Может я как-то не так пишу аргументы?
This. Параметр -lossless (или -qmax 0, что приведёт к тому же результату) должен быть указан на выходе, а он у тебя вообще хуй знает где.
Смотри в местной вики статью по ffmpeg, там в самом начале описывается порядок параметров.
>>1453040
ffmpeg -i in.mp3 -i in.mp3 -lavfi "[0:a]apad=pad_len=$x[a0]; [a0][1:a]concat=v=0:a=1' out.mp3
> Это не баг ffmpeg, это особенность libvpx.
Я бы даже больше написал для прояснения: эта особенность была сделана осознанно ради повышения эффективности сжатия.
И в указанной вебм (https://2ch.hk/b/src/105569197/14464779230730.webm ) целесообразность её применения чётко просматривается: там есть статичные объекты, висящие на протяжении большей части клипа.
Кстати, там ещё файл кривой:
> [mkv] Corrupt file detected. Trying to resync starting from position 20961910...
Firefox из-за этого останавливает декодирование видео на 80 секунде. Возможно, из-за этого же и проблемы с перемоткой: при перемотке назад недогруженных файлов он зачем-то начинает качать их снова (ff41 и древнее).
>>1453083
s/\$x/${x}
s/'/"
>Кстати, там ещё файл кривой
Так это они юзерскриптами в конец левые данные дописывают, чтобы можно было файл несколько раз запостить. С картинками это в принципе всегда прокатывало, но видео всё-таки посложнее декодить. Открой в редакторе, там последние 6 байт — аски-символы 130169.
В vpxenc, кстати, они ставят kf_max_dist в 5*fps. Но если мы откроем какую-нибудь http://wiki.webmproject.org/ffmpeg/vp9-encoding-guide , то там рекомендуется как раз побольше для лучшего качества.
> Так это они юзерскриптами в конец левые данные дописывают, чтобы можно было файл несколько раз запостить.
Так в конец же, а не посреди дорожки. Говно в конце, хоть и формально лишает файл соответствия спекам, вряд ли может помешать парсерам.
Хотя ошибка mpv указывает как раз на последние байты. Странно.
ffmpeg -i in.mp4 -i in.flv -lavfi '[0:a][1:a]amix[a]' -map 0:v -map '[a]' $output
Короче, я не знаю это баг или фича, но я попробовал с помощью этой команды добавить музыку:
ffmpeg -i out.mp3 -i out.mp4 video_finale.mp4
И в video_finale.mp4 была только музыка (та которая out.mp3), а в исходном out.mp4 (который по идее меняться был не должен раз он исходный) был микс из музыки и исходной аудиодорожки.
Но если у исходного аудиофайла и видеофайла разные имена, исходный видеофайл остается неизмененным, команда работает таким образом только если имена (до расширения) идентичны.
Короче я добавил музыку и сохранил под ней исходный звук, но такое ощущение, что через баг.
А если, скажем, музыка длится меньше чем видео, и я хочу вставить еще одну композицию после первой, можно это в одну/в твою команду запихнуть или отдельно клеить две аудио дорожки? И чтобы автоматом обрезало видео, там где кончается видео, а не показывало черный экран если аудио длиннее видео.
поясните
Для этого нужно результат весь в памяти держать, только потом открывать выходной файл на запись. ffmpeg так не делает, т.к. поточный. Как вариант можешь записывать на tmpfs, оттуда перемещать на место исходного. Или вот такой костыль: https://serverfault.com/a/135537
ffmpeg -i in.mkv -f matroska - | sponge in.mkv
Какие кэши? Ты в курсе, что файлы могут транскодиться многогигабайтные? И даже если он будет записывать во временный файл в какой-нибудь TMP_DIR, не факт, что там места хватит. Как раз твоё предложение это и есть дикое пердольство. Вызванное незнанием основ операционных систем.
ffmpeg -i in -filter_complex yoba in
...
внимание, вы пытаетесь писать в тот же файл, из которого читаете. так как ффмпег - потоковая программа, то сходу это невозможно.
нажмите да, чтобы разрешить создать временный буферный файл. нажмите нет, чтобы сбросить
какое-такое знание основ операционных систем запрещает выдать такой промтик, а не подбрасывать мне порванные буферы на лицо?
ffmpeg -i in in.tmp && mv in.tmp in
Problem solved. Или sponge.
Ну или если ты хочешь поныть, то багтрекер там → https://trac.ffmpeg.org/
Здесь разработчиков ffmpeg нет.
У ffmpeg нет задачи создавать буферы и т.п., это задача костылей, тебе уже даже нашли их, а ты все комбайн хочешь. Книжки бы умные почитал про всю хуйню, Таненбаума там, вот это все.
-f $format
хотя я предпочитаю и во временных файлах использовать расширения:
>>1455081
ffmpeg — неинтерактивная программа (хотя и с элементами интерактивности вроде подтвержжения перезаписи файла).
Подобные костыли — это палки в колёса любому автоматизированному использованию. Если такое и реализовывать, то только в виде вывода warning'а и продолжения работы.
Но я почти уверен, что это реализовано не будет. Файл — это лишь частный случай источника и вывода информации (ffmpeg также поддерживает разнообразное вещание, захват, генерацию и утилизацию потоков, см. https://ffmpeg.org/ffmpeg-devices.html , https://ffmpeg.org/ffmpeg-protocols.html и фильтры категорий sinks и sources), и рисовать в файловом протоколе какие-то костыли, в обход выданного ему контекста проверяющие, не долбоёб ли пользователь, я бы не стал.
Многочисленные проверки на долбоебизм (в т.ч. реализованные поверх общей архитектуры программы) уместны в софте для соответствующих пользователей, но в решениях вроде ffmpeg им места нет. Пользователь ffmpeg должен сам понимать, куда и как он что направляет и как оно должно буферизироваться. У меня почему-то и мысли ни разу не возникло перезаписывать ffmpeg'ом читаемый файл, хотя случаев, когда это было бы удобно, было достаточно.
ffmpeg.exe -i temp.mp4 -ss 00:06.140 -to 12:37.237 -c:v libvpx-vp9 -crf 32 -b:v 200K -vf scale=320:180 -threads 4 -fs 20M -metadata title="Kings of Power 4 Billion%" -quality best out_new.webm
Фигачит в один поток и все тут, с vp8 такой укни не наблюдалось.
УМВР. Первый скрин ffmpeg -i 1.mkv -threads 4 out.webm
Даже без указания не в один поток, второй скрин ffmpeg -i 1.mkv out.webm
Алсо, quality best нафига? У тебя там пару суток есть кодировать?
Анон, я сам дурак, оказалось у меня просто какой-то протухший билд ffmpeg был, на свежем все ок.
А -quality best просто тестил.
Получилось вот так: ffmpeg -i in.mp4 -i music.mp3 -lavfi [0][1:0]amix[1] -map 0:v -map [1] out.mp4
Но качество плоховатое на выходе, даже если по весу посмотреть на выходе файл в 7 раз меньше чем исходный, как форсировать исходное качество?
Im pretty much некомпетентен in this. Куда именно в этой строке: ffmpeg -i in.mp4 -i music.mp3 -lavfi [0][1:0]amix[1] -map 0:v -map [1] out.mp4
вставить -c:v copy ?
Смотри. У тебя есть
ffmpeg - название собственно, оно неизменно.
Дальше ты можешь написать -ss, чтобы отрезать кусок. Время указываешь начало файла. Больше сюда обычно ничего не пишут, по крайней мере для вебм. Не уверен можно ли вообще что-то писать.
Дальше ты пишешь путь и имя входного файла или файлов. Это считай начальной точкой, дальше все, что касается этих файлов будет за ними, и в конце ты завершишь выходным файлом. Все настройки пишутся между входными и выходным файлом. Поэтому -c:v copy вставляй в любое место между in.mp4 и out.mp4
Я бы подкорректировал.
> ffmpeg - название собственно, оно неизменно.
ffmpeg — команда, остальное — параметры.
> Дальше ты можешь написать -ss, чтобы отрезать кусок. Время указываешь начало файла. Больше сюда обычно ничего не пишут, по крайней мере для вебм.
Во-первых, ему даже -ss не надо. Во-вторых, у него два входа, и -ss при применении на входе пришлось бы писать для каждого из них отдельно.
> Не уверен можно ли вообще что-то писать.
Есть довольно много параметров, которые можно использовать на входе — как универсальных, так и специфичных для входных форматов и протоколов.
> Все настройки пишутся между входными и выходным файлом.
Только настройки конкретно этого выхода. Параметры входа были рассмотрены выше, а ещё существуют глобальные параметры вроде -y и -hide_banner, которые можно пихать куда угодно.
>>1456200
Я вот только не пойму, чего вы в ман-то сразу не отправляете?
https://www.ffmpeg.org/ffmpeg.html#Description
Офигенно ж объяснено, даже с картинками.
> Я вот только не пойму, чего вы в ман-то сразу не отправляете?
Но там нет картинки по принадлежности опций, синопсис не имеющий прыщенавыков человек сходу может и не понять, а абзац, где об этом написано, может быть труден для понимания человеку с низким скиллом английского.
Я бы послал в местную вики, но её лучше бы сначала обновить, т.к. инфа по дефолтам устарела.
Обычно это одно и тоже. Разница есть только в новых версиях ffmpeg при картинках и камерах через v4l2 на входe, какая именно — из документации не вполне понятно. Указывается использовать -framerate.
Видимо, разделение сделано чтобы не путали с выходным параметром -r, действие которого аналогично фильтру fps.
Конфиг в каком файле? Я скачал билд для шиндоус, при запуске он воспроизводит, но в папку \webm ничего не сохраняет.
> Конфиг в каком файле?
https://github.com/ValdikSS/endless-sosuch/blob/master/config.py.
> Я скачал билд для шиндоус
Он вкомпилен внутрь, ололо. Качай нормально.
Нахуя? Чтобы смотреть одни и те же вебмки, которые к тому же я уже 100 раз видел?
как сделать, чтобы растягивало ПРОПОРЦИОНАЛЬНО до первой попавшейся границы по вертикали или горизонтали, останавливалось на этом, и остальное заливало каким-нибудь цветом?
Но я не могу в питон, у меня нет компилятора, как я это запущу то потом.
WEBMо няши реквестирую создать вебмку
С этим видео → https://coub.com/view/8zv5i
И музыкой отсюда → http://meatspin.fr/
Ничо толком не поменялось в плане скорости. На качество гляну, но вроде не особо ссано вышло с -cpu-used 4 и дефолтным -quality.
> как сделать, чтобы растягивало ПРОПОРЦИОНАЛЬНО
scale=x:-1
> до первой попавшейся границы по вертикали или горизонтали, останавливалось на этом
scale=x:y:force_original_aspect_ratio=decrease
> остальное заливало каким-нибудь цветом
pad=x:y:color=red
>inb4 обвинения в качестве
Всё, как просил. Поток с coub напрямую скачан youtube-dl, музыка выдрана из ms.swf с помощью swfextract.
Оригинал музыки вот: http://rutracker.org/forum/viewtopic.php?t=4516578
Если есть лучше видео, то давай. Можно ещё закольцевать на какое-то время. (Я, кстати, нашёл способ как это нормально сделать без перевода в RGB пнгшки с потерями.)
Вот кое что нашел:
http://imgur.com/gallery/r3Zx7Km
И да закольцевать хорошая идея, ориджинал видео можно подрезать чтоб небыло видно как она останавливается
Вот. Видео с imgur оригинальное без пережатия, аудио — 128k опус, скодированный из флака, считай что transparent.
Циклить особо не куда, всего 6 мегабайт лимит. Разве что синхру можно получше затюнить, но мне лениво.
Ух ты, Серёженька. Пойду передёрну на него.
>Если для кого-то это слишком сложно, то можно взять гуй с минимумом кнопок для умственно отсталых (сперма-only): https://gitgud.io/nixx/WebMConverter
Вроде скачал 35мб.
Но что нажимать так и не нашел.
Можно более ПОДРОБНУЮ инструкцию?
> гуй с минимумом кнопок для умственно отсталых
> Но что нажимать так и не нашел
> Можно более ПОДРОБНУЮ инструкцию?
> Windows 10
Хотя с графоном обосрамс полнейший.
Не переживай ему на windows 11 завезут с Адварьным Абу и Пропиетарным двачем.
Так 4 фпс с таким процем это её хорошо получается. Чего ты ждал от ноутбука? Производителньость эквивалентную ПК?
Ну так по всяким бенчмаркам этот камень жжот как i5-2500. Или кодировать в вп9 можно только на 2011 сокете?
Я предполагаю, что это из за исходной видеодорожки, а не из за моей рукожопости, ибо всё время нормально
Поясните за это плиз
А потом дописывает пик
>Ну так по всяким бенчмаркам
А ты сам позапускай линпаки и сисбенчи и посмотри, насколько они соответствуют действительности.
Ну тогда сравнивай на реальных энкодах. Это ж ещё от видео и настроек качества зависит.
Например: https://media.xiph.org/video/derf/y4m/park_joy_420_720p50.y4m
$ time ffmpeg -hide_banner -i park_joy_420_720p50.y4m -c:v libvpx-vp9 -speed 1 -threads 4 -b:v 0 -crf 30 -f null -
frame= 500 fps=2.6 q=0.0 Lsize=N/A time=00:00:10.00 bitrate=N/A
634.26s user 0.65s system 331% cpu 3:11.44 total
(500 кадров 720p, средний fps 2.6, 3 минуты 11 секунд, средняя загрузка CPU около 331 процента. i7 3820)
На разогнанном i7 2600k здесь лучше результаты показывали. Сокет ещё не показатель, проц-то десктопный и AVX2 нет.
Ах да, сравнивать в энкодах как-то не особо хочется, придется пгыщи накатывать какие-нибудь, ибо консольную клоунаду в сперме не люблю… Пгыщи тоже не особо люблю на десктопе, х сервер настраивать, вот это все, не под себя запилили.
Эх, вот дилемма, сперма для игор хороша, гейось для всего остального но не для игор нихуя, ускорение у мышки ебанутое, а пгыщи хороши для энкодинга вебмок всего остального.
>Сокет ещё не показатель
Ой да ладно, материнки отличные все под этот сокет – рассыпуха качественная и биос объемный, сами камни тоже хорошие – жиды так и не решились заливать их спермой.
>придется пгыщи накатывать какие-нибудь, ибо консольную клоунаду в сперме не люблю
PowerShell чуть получше. И вот как у этого >>1448903 эмулятор терминала можешь поставить (в прошлых тредах было, забыл как называется).
Именно на запуске команд ffmpeg особой разницы нет. Вот что-нибудь компилировать — да, на линуксах удобнее, особенно на генту. И пакетные менеджеры побогаче, не то что шоколадки всякие.
Да то cygwin, я его ставил года два назад, не под себя было, мб поменялось чего.
Вот, давно хотел с этим разобраться, но что-то руки не доходили.
Судя по коду, это получается когда разница в PTS в процессе конвертации меняется более чем на 0.6 сек в сторону ускорения вывода:
https://github.com/FFmpeg/FFmpeg/blob/master/ffmpeg.c#L1009
Дай соус видео, хочу поковырять это.
Надеюсь, ты там с FPS, PTS и timebase никаких штук не делал?
Ан нет туплю, ниже же вторая версия.
Это что, ЗУБАСТИК же на пикче? Или нет?
HN, slashdot, reddit. Ну и тематические — мэйллисты, блоги, чатики, конференции, слайды. Зависит от направления.
Encoder (codec vp8) not found for output stream #0:0
ffmpeg -ss 1:30 -i sex.mp4 -to 3:30 -c:v vp8 sex.webm
Unknown encoder 'vp8'
ЧЯДНТ?
>На бумажке-то он ух
Пруфани бумажку, а то могильное говно всегда хуй сосало у десктопных процессоров.
ffmpeg собрал как?
Сноси его и ставь заново с флагами
--with-fdk-aac --with-ffplay --with-freetype --with-frei0r --with-libass --with-libvo-aacenc --with-libvorbis --with-libvpx --with-opencore-amr --with-openjpeg --with-opus --with-rtmpdump --with-schroedinger --with-speex --with-theora --with-tools
Эти я ща в бложике каком-то по первой ссылке взял, там их больше, советую собрать со всеми, один хуй не теряешь ничего кроме времени на сборку.
Ну типа вот всеми любимый штеудом купленный сайтик с бенчмарками, например.
http://www.cpubenchmark.net/compare.php?cmp[]=1784&cmp[]=804
>перекодирует на дефолтных настройках в 4 потока со скоростью 20 фпс
Какой файл-то? В отрыве от исходника эти данные не имеют смысла.
Вот такой. Ща попробую его же с теми же флагами (только под 8 потоков, айсемь жи) пустить на лаптопе.
Ты, кажется, не понял. Влияет не только разрешение и частота кадров, но и сам исходник.
Кроме того, если настройки были совсем дефолтными, то это VBR 200k, т.е. не имеющие смысла.
Почитай вот это для начала: https://web.archive.org/web/20141103202912/http://x264dev.multimedia.cx/archives/472
Там многа буков, мне лень ща.
Настройки были следующие:
ffmpeg -i input.mp4 -ss 0:00 -t 384 -b:v 0 -tile-columns 6 -threads 48 -crf 30 output.webm
Лаптоп делает в 4 раза медленней сейчас.
При активности одного до 3.4. Свежий цпу-з с прикрученным бенчмарком вроде даже одно ведро этой мобильной кукурузы считает более мощным, чем одно ведро 2500к.
А нет, напиздел.
У могильного 1417 и 5882 соответственно. Ща попробую там под спермой запустить тот же самый файл.
Превратили тред в мокрописьки какие-то. Эти циферки в проприетарной поделке показывают чуть менее, чем ничего.
Хех, зато под спермой оно троттлит, а под гейосью нет. Мертвый господин 1:0 Потный господин.
Да нет хуле, он 3.2 таки выдавал, троттлил не полностью, только одним ядром. 3.4, как я сказал, может только одним ядром.
А какие альтернативы-то? Я даже не знаю, что там у свежего ULV-кала, наверное вообще адок.
помогло установка libvpx и libvobris. Оказывается они необходимы для кодирования webm.
Но у меня теперь другая проблема, очень медленно получается. Юзаю такую команду:
ffmpeg -ss 1:30 -i sex.mp4 -to 3:30 -c:a libvorbis -c:v libvpx-vp9 sex.webm
5 секунд кодировалось около минуты. Меня такая скорость не устраивает. Что посоветуете дописать?
Это дефолты в ffmpeg.
Этот господин прав.
libvpx-vp9 -> libvpx
после этого поползло, аж по несколько фреймов в секунду
еще поставил -threads 4, тоже очень хорошо помогает
Но все равно довольно медленно (около 4-5 fps)
Пробовал добавить -cpu-used 5. Пошло быстро, прямо как мне и надо, только вот картинка хреновая вышла. Можно еще что-нибудь сделать?
Поменял термопасту, под спермой теперь тоже не троттлит. Интересно, хули он только 60% ресурса цпу в среднем юзает? 2500к сотку жрет...
>Можно еще что-нибудь сделать?
Разрезать файл пополам/на три части и запустить параллельно. Будет полное задействование ядер.
>libvpx-vp9 -> libvpx
Ну так это vp8. Он быстрее но хуевей.
>Можно еще что-нибудь сделать?
Бутнуть спермуху - там в два раза быстрее. Хуй знает, почему так, мб в хоумбрю протухший vp9.
Так хули нечем - я тут ему сую за щеку ffmpeg.
Кстати в гейоси та же хуйня походу - он грузит камень не полностью несмотря на 8 потоков в опциях..
libvpx-vp9 похуй сколько потоков там в опциях, сколько он захочет, столько и будет грузить.
Ну естественно что один он загрузит, а вот дальше со скрипом пойдет, уменьшай количество потоков по одному с 8 и смотри когда начала скорость падать, вот столько потоков значит нагрузил.
таки дождался (около 15 мин)
frame= 2955 fps=2.6 q=0.0 Lsize=6177kB time=00:01:58.23 bitrate= 428.0kbits/s
video:4637kB audio:1474kB subtitle:0kB other streams:0kB global headers:4kB muxing overhead: 1.082532%
На этот раз юзал такую команду:
ffmpeg -ss 1:36 -i sex.mp4 -to 3:30 -c:a libvorbis -c:v libvpx -vf scale=-1:720 -threads 4 sex.webm
Хотя -cpu-used 5 задействовано не было, картинка, как можно видеть, все равно херовая. Почему так? Я ведь долго кодировал.
пришлось обрезать 15 сек чтобы влезло
Ты неправильно сделал расчёты. У тебя битрейт маленький для такого разрешения.
У тебя получилось:
1280720px 25fps при всего 313Kb/s, выходит соотношение битрейт / (кол-во пикселей число кадров) = 0,014. А чтобы было более-менее смотрибельное качество нужен коэффициент >= 0,1.
Выходит тебе нужно либо повысить битрейт видеоряда аж до 2300 Кбит/с, но тогда у тебя он в тематические 6Мбайт не влезет. Либо понижать разрешение.
>битрейт / (кол-во пикселей Х число кадров)
И ты бы мог соус куда-нибудь залить?
Используй vp9, там картинка лучше и сжатие тоже.
код был такой:
ffmpeg -re -i "ссылка на поток" -c copy video.mp4
Это проблема. Зря ты в mp4 сохранял. Если прямо нужно восстановить, то вот, держи http://vcg.isti.cnr.it/~ponchio/untrunc.php
rtmp://serv.valdikss.org.ru/sosuch
Из анимублядского ничего не транслирует? И сделай таймаут для видео, а то сейчас мужик минут 15 пиздел так нудно, что я решил этот пост написать.
спасибо. Буду пробовать восстанавливать.
Я изначально и хотел в мкв, но ффмпег ошибку выдал связанную с аудиопотоком. Работало только если звук перекодировать или сменить на mp4. Подумал что мне не особо важно в каком контейнере будет видео, а так проц напрягать не придётся.
Вообщем еще раз спасибо, буду думать
Оно из всех вещает, просто тот тред добавился первее. Может, бота какого-нибудь для скипа прикручу. Я, на самом деле, хочу всякие сервисы, погоду, мониторинг серверов прикрутить, дома вещать это на отдельном мониторе круглосуточно.
Т.е. он по очереди целый тред крутит, а потом следующий? А рандомизация тогда где?
Рандомизации и нет. Как только очередь заканчивается, подсасываются новые видео из старых тредов и ищатся новые треды.
mp4, пожалуй, единственный контейнер, который пишет все метаданные о потоках внутри себя в конец файла, поэтому и нельзя просто так останавливать процесс кодирования/муксирования. Любой другой контейнер пишет эти метаданные либо в начале, либо в произвольном месте файла, и таких проблем нет. А в mkv можно засунуть потоки буквально любого формата, за это его и любят.
И какой смысл вещать в h264/aac, если всё равно перекодируешь? Ещё и через гстример, лол.
wut? А по какому протоколу вещать? Я мультики вещаю по HTTP обычному, т.к. там файлы и буфер в 30 секунд, а тут-то лайв.
>>1459873
Что плохого в gstreamer? Смысл я выше написал. Можно и без перекодировки вещать, но не знаю, какой протокол матрешку поддерживает. Когда два года назад пробовал матрешку вещать, у меня ничего не получилось, хотя сейчас есть уже стримеры, надо бы еще раз потестировать.
Да DASH хотя бы. Форматы — VP9 и Opus. При таком bpp H.264/AAC неэффективны.
>Смысл я выше написал
Ты писал, что единственный смысл в отсутствии перекодирования. А оно есть.
О, спасибо за хинт с DASH.
На мониторе-то у меня без перекодирования показывается, только в вещалке перекодируется.
Как перекодировать в 60FPS? Так и не нашел инструкции.
Если не работает, то никуда не надо, очевидно же.
Пикча сама по себе нормальная, но в видео картинка дерьмо с лесенками. Пробовал крутить -b:v и -q:v, не помогает.
Как сделать заебись?
Значит проблема в другом. Тестируй для начала так:
ffmpeg -r 1 -loop 1 -i in.png -c:v libx264 -qp 0 -vf format=rgb48,format=yuv444p10 -t 10 out.mkv
Это должно дать почти минимальное количество потерь (для картинки разрешения меньше 1280x720). Потом начинай CRF/дискретизацию убавлять.
ffmpeg -r 1 -loop 1 -i in.png -t 10 -c:v libvpx -b:v 0 -crf 4 -pix_fmt yuva420p -y out.webm
Вообще, думаю можно и в yuv420p нормально сделать. Надо фильтры позадрачивать, по умолчанию ffmpeg просто выкидывает альфа-канал, а в данной картинке плавные переходы как раз все в альфе.
Или просто через IM: convert in.png -background black -alpha remove in2.png
Что должно произойти?
Да, спасибо.
Вот так нормально блендит: -lavfi 'color=s=1280x720;[0:v]overlay,format=yuv420p'
Лол, макаба решила, что это бб-код.
-lavfi 'color=s=1280x720[bg];[bg][0:v]overlay,format=yuv420p'
ffmpeg -f concat -i vids.txt -c copy vid.mp4
У некоторых видосов в списке аудио нет, у некоторых - есть. У результирующего видео нет вообще.
Как починить?
У результирующего видео звука нет вообще, имеется ввиду.
> Пошло быстро, прямо как мне и надо, только вот картинка хреновая вышла. Можно еще что-нибудь сделать?
Вернуть -cpu-used 1 и не использовать значения выше единицы, кроме как для первого прохода. 4-5 фпс у vp9 это нормально.
tile columns multi-threading?
При ширине 960 пикселей можно только 2 треда максимум, а при 1024+ уже 4.
Обходится очень легко, надо купить процессор с самой большой производительностью на ядро.
Но оно же не станет на четырех от этого кодировать. Не обход.
Нет, количество тредов по степеням двойки только. (Значение опции tile-columns это логарифм по основнию два.)
>>1461911
Дели файл на части с помощью -ss/-t и запускай в отдельных процессах. У меня так даже в браузере прекрасно на веб-воркерах параллелилось, т.к. нормальных тредов там ещё нет.
Интересное решение, спасибо.
>Нет, количество тредов по степеням двойки только. (Значение опции tile-columns это логарифм по основнию два.)
Действительно, при 960 только 2 ядра нагружены, но если сделать 964 то уже около 3 ядер грузит. Это как объясняется?
>но если сделать 964 то уже около 3 ядер грузит
Кстати, интересно, в самом деле. Но не 3, а 4, и на границе 960 пикселей. Вероятно минимальный размер tile не 256 пикселей или он использует обрывок для последней колонки начиная с 961.
На линуксах удобно ps смотреть: ps -LC ffmpeg -o %cpu= | sort -n
На венде лучше ProcessExplorer какой-нибудь, дефолтный диспетчер почти ничего не показывает.
Результирующее разрешение 960 пикселей:
…много строчек с нулями (незагруженные треды)
0.8
0.8
0.8
0.8
76.0
96.4
Результирующая ширина 961 пиксель:
…много строчек с нулями (незагруженные треды)
0.9
0.9
52.3
54.7
77.0
86.3
Результирующая ширина 1280 пикселей:
…много строчек с нулями (незагруженные треды)
0.7
0.8
50.7
55.2
81.1
83.5
Т.е. между 961 и 1280 никакой разницы нет.
>>1461953
Ширина колонки видео, которая кодируется независимо от остальных, т.е. может параллелиться.
>но если сделать 964 то уже около 3 ядер грузит
Кстати, интересно, в самом деле. Но не 3, а 4, и на границе 960 пикселей. Вероятно минимальный размер tile не 256 пикселей или он использует обрывок для последней колонки начиная с 961.
На линуксах удобно ps смотреть: ps -LC ffmpeg -o %cpu= | sort -n
На венде лучше ProcessExplorer какой-нибудь, дефолтный диспетчер почти ничего не показывает.
Результирующее разрешение 960 пикселей:
…много строчек с нулями (незагруженные треды)
0.8
0.8
0.8
0.8
76.0
96.4
Результирующая ширина 961 пиксель:
…много строчек с нулями (незагруженные треды)
0.9
0.9
52.3
54.7
77.0
86.3
Результирующая ширина 1280 пикселей:
…много строчек с нулями (незагруженные треды)
0.7
0.8
50.7
55.2
81.1
83.5
Т.е. между 961 и 1280 никакой разницы нет.
>>1461953
Ширина колонки видео, которая кодируется независимо от остальных, т.е. может параллелиться.
Ну то что 4 потока создаются я видел, только у меня нагрузка на них неравномерная, 2 ядра почти полностью, остальные частично. По времени кодирования проверил, у 960 за 4:11 а на 964 за 2:35 (минуты:секунды).
С 1280 также, подозреваю что-то плохо параллелится (какой-нибудь entropy coding или что-то вроде этого в слайдах было) и отсос.
Для восьми тредов граница — 1984 пикселей, кстати. Как-то не сходится (960/4=240, 1984/8=248), может где захардкожено, надо код посмотреть.
Значит вместо 960x540 намного выходнее делать 961x541 (или 964x542 для чётности) с точки зрения скорости кодирования. 1920x1080 до 1985x1117 апскейлить как-то не то.
>>> (256-960/4)4
64.0
>>> (256-1984/8)8
64.0
Вот так сходится. Наверно, последняя колонка может быть на один суперблок (64 пикселей) уже или что-то вроде этого.
>>> (256-960/4)×4
64.0
>>> (256-1984/8)×8
64.0
Сука, меня дико заебали как капча, так и разметка.
Капчу отменили же. Кстати а -frame-parallel 1 вроде не ухудшает скорость?
В смысле улучшает.
Для нерусских айпишников включили неразгадываемую, наверно. Там в больше чем в половине случаев цифры друг от друга неотличимы.
frame-parallel уже вообще не нужен, он только качество ухудшает.
>frame-parallel уже вообще не нужен, он только качество ухудшает.
Просто он по умолчанию на 1 стоит, а нигде особо не писали что можно его на 0 ставить и безболезненно улучшить качество (правда всего около 100 Кб на 10 Мб экономится, но все же).
>а нигде особо не писали
Я про это полгода пишут. Но никто ж не читает ни вики, ни прошлые треды. Всё это уже по сто раз обсуждалось, лол.
Я видел это только в связке с однопоточным кодированием, по этому и не трогал его. А он оказывается ненужен совсем.
Ну мне лень разбираться с этими кодерами, хватит с меня EAC и foobara.
Годная вебм получится же.
в он-лайне ебани в VP8
Вы видите копию треда, сохраненную 8 ноября 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.