Это копия, сохраненная 30 января 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Есть вин10, ffmpeg.exe, 2 файла - видео h265 mp4 и .aac mp4
Пошагово, как соединить их в 1 файл? Длительность одинаковая.
>ffmpeg -f concat -i mylist.txt -c copy output.mp4
Всё равно звука нет, и файл кривой получился и время криво показывает.
Cам уёбывай со своим говном или пиши нормальные команды
Поменял местами в mylist.txt имена файлов, перекодил без видео. лол.
Чо ты мне за хуйню подсунул? Давай нормальное
ffmpeg -i h265.mp4 -i aac.aac -c copy output.mp4
Вот ты няша <3
Анончик, а как сделать чтоб короткий ролик зациклился. Ролик короткий, а песня длинная. Видео стопится, а звук дальше идет.
Я бы сделал так, по инструкции из >>302862-поста, только прописал бы несколько раз один файл, количество раз такое, чтобы по длине совпадал с аудио или был больше.
Дальше
ffmpeg -i dlinnii_video.mp4 -i audio.aac -c copy -shortest output.mp4
shortest - должно обрезать длину по самому короткому файлу.
Если не получается через shortest, то укажи длину сам
ffmpeg -i dlinnii_video.mp4 -i audio.aac -c copy -t 01:02.05 output.mp4
-t часы:минута:секунды.доли_секунды
Не работает же.
>Анончик, а как сделать чтоб короткий ролик зациклился. Ролик короткий, а песня длинная. Видео стопится, а звук дальше идет.
Сначало делаеш длинное зацикленное видео, путем соединения много раз одного и тогоже видео файла вот так:
файл video.txt :
file 'video.mp4'
file 'video.mp4'
file 'video.mp4'
file 'video.mp4'
file 'video.mp4'
file 'video.mp4'
ffmpeg -f concat -i video.txt -c copy longvideo.mp4
потом соединяеш с песней через -shortest
ffmpeg -i longvideo.mp4 -i song.aac -c copy -shortest longvideosong.mp4
далее
Для начала определись, где середина, потом
ffmpeg -i video.mp4 -c copy -t 00:10:25 chast_01.mkv
ffmpeg -ss 00:10:25 -i video.mp4 -c copy chast_02.mkv
Здесь середина в 10:25
Спасибо
>>311729
Кстати. Следует учесть, что
ffmpeg -ss 00:00:25 -i video.mkv -to 00:01:00 -c copy chast_03.mkv - отсчет пойдет с 00:00:25 включительно данного видео в течении 00:01:00, кусок получится 00:01:01
ffmpeg -i video.mkv -ss 00:00:25 -to 00:01:00 -c copy chast_06.mkv - отсчет пойдет с начала данного видео, обрежет от 00:00:25 и обрежет на 00:01:00, кусок получится 00:00:35
аа, типа в первом случае мы выбираем сколько минут надо вырезать начиная с определёного времени
а во втором случае обрезаем конкретно по времени от и до
?
По сути да, начало задаётся положением команды относительно входного потока -i
Метод решения: -f concat
Вопрос: что делать с разрешением? Как бы выставить итоговое разрешение по максимальным высоте/ширине из имеющихся, а остальное заполнить чёрным?
Короче как их из конца в начало видео перенести?
ffmpeg -i hui.mkv -c:v libvpx-vp9 -row-mt 1 -threads 16 -pix_fmt yuv420p -b:v 0 -crf 30 hui.webm
ffmpeg -i 1.mp4 -c:v libvpx-vp9 -row-mt 1 -threads 16 -pix_fmt yuv420p -b:v 0 -crf 30 hui.webm
не работает
Попробуй обновить ffmpeg
854x480, 1:30
Ну охереть, ты бы хоть пикчу из-того поста принёс.
Пришлось экспериментировать. Новый метод основывается на том, чтобы у второго потока, где находится превьюха, продолжительность на сколько именно непонятно, здесь я взял была дольше, а на разрешение уже плевать.
Может кто-нибудь гайд напишет, или я потом сам.
854x480, 15:00
Ясна, 20 секунд мало, превьюха то обычная, то искусственная. Напердолю второй поток длиной в 15 минут.
Отлично, буду рад если напишешь гайд. Там самого видео не было, кто-то жаловался на ошибку MIME не поддерживается.
888x666, 5:30
Нужно добавить вторую видеодорожку с превьюшкой и, чем она длинее, тем больше вероятность, что она будет выбрана для создания превьюшки. Разрешение превьюшки не влияет, поэтому будем брать scale 200:-1 для горизонтальных и -1:200 для вертикальных видео.
orig.mp4 и orig.webm - исходные файлы без превьюшки, длительность 01:00 продолжительность превью в 10 раз больше - 10:00
preview.png - картинка с превьюшкой, желательно такого же aspect ratio (16:9, 4:3, 9:16), как и видео.
MP4
Создание видеодорожки с превьюшкой:
ffmpeg -loop 1 -r 0.1 -i preview.png -vf scale=200:-1 -t 10:00 -c:v h264 -pix_fmt yuv420p -preset medium -crf 30 prev.mp4
Если появляется ошибка: width not divisible by 2 (200x141) Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height, то нужно заменить нечетное число на чётное в scale=
Исправленная команда будет выглядеть так: ffmpeg -loop 1 -r 0.1 -i preview.png -vf scale=200:142 -t 10:00 -c:v h264 -pix_fmt yuv420p -preset medium -crf 30 prev.mp4
Соединение оригинала с превью:
ffmpeg -i orig.mp4 -i prev.mp4 -map 0 -map 1 -c copy orig_prev.mp4
WebM
Создание видеодорожки с превьюшкой:
ffmpeg -loop 1 -r 0.1 -i preview.png -vf scale=200:-1 -t 10:00 -c:v libvpx-vp9 -g 9999 -pix_fmt yuv420p -crf 30 -b:v 0 -speed 2 prev.webm
Соединение оригинала с превью:
ffmpeg -i orig.webm -i prev.webm -map 0 -map 1 -c copy orig_prev.webm
Длительности 10x от оригинала для превьюшки должно хватить для постоянного показа превьюшки, а, учитывая маленькое разрешение, отсутствие динамичности и низкий fps -r 0.1, она всё равно будет достаточно маленького размера.
Спасибо, анон! Ты охуенен!
Вот таким образом, к примеру:
0:x264 -> 0:x264
1:mp3 (en) -> 1:mp3 (en)
2:aac (ru) -> 2:mp3 (ru)
3:srt (de) -> 3:srt (de)
ffmpeg -i orig.mkv -map 0:2 <опции> aud.mp3
ffmpeg -i orig.mkv -i aud.mp3 -map 0 -map -0:2 -map 1 -c copy out.mkv
Будет:
0:x264
1:mp3 (en)
2:srt (de)
3:mp3 (ru)
Если нужно сохранить исходный порядок дорожек, то уже вручную прописываешь
ffmpeg -i orig.mkv -map 0:2 <опции> aud.mp3
ffmpeg -i orig.mkv -i aud.mp3 -map 0:1 -map 0:2 -map 1 -map 0:3 -c copy out.mkv
Есть части "большого" видео, и к этим частям один файл сабов. Вот если я захочу например вшить сабы только во вторую или последующие части, как это сделать?
Т.е. вшить сабы с оффсетом.
Ну смотри, если ты с большого видео делаешь, то можно -ss время начала куска после файла прописать. Кодиться будет дольше, но субтитры будут работать правильно.
Если у тебя именно короткие отрывки как сурс, ну тут только подправить тайминг в файлах субтитров, программами для эдита субтитров делается легко.
Главное только на субтитре до начала ролике поставить в таймкоде 0:00:00 чтобы он отрендерился, потому что если он начинается например на -0:00:00.001 то уже всё, ffmpeg его пропускает.
А так лучше погугли. Может есть нормальный способ.
Да я погуглил, и понял, что сабы накладываются как поток. Также как видео или аудио, поэтому решил попробовать обрезать этот поток таким же способом как и видео:
ffmpeg -i input.mp4 -ss 251.425 -i input.srt -t 254.048 -c copy -c:s mov_text output.mp4
И всё вышло как задумано. Правда сабы конечно немного пидорасит.
Сук, проиграл, лучшая фраза для интро
Цать времени пользовался гуем - https://github.com/CherryPerry/ffmpeg-vp9-wrap
С переустановкой винды, Гуй отказался работать.
C:\ffmpeg>vp9 -install
Getting link to latest ffmpeg
Необработанное исключение: System.AggregateException: Произошла одна или несколько ошибок. ---> System.NullReferenceExce
ption: Ссылка на объект не указывает на экземпляр объекта.
в VpxEncode.FfmpegLoader.<GetLinkFromWebPage>d__7.MoveNext()
--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---
в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
в VpxEncode.FfmpegLoader.<Install>d__6.MoveNext()
--- Конец трассировки внутреннего стека исключений ---
в System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken)
в VpxEncode.Program.Main(String[] args)
Щито делать? Пересаживать на ffmpeg
Вот мне надо вставить субтитры в mpeg2 и я даже не знаю, блядь, поддерживает ли этот контейнер их или нет, и сука бляяя как же жопу рвёт нахуй!
Надо вставить без re-encoding
3840x2160, 1:01
XviD4PSP
На вебм общее время никак не пофиксить? А то в плеере браузера показано что 40 мин видос идет и перемотка глючит. С mp4 все норм
А, я проебался, я спутал с рендерингов сабов в видео. Так то вставить можешь, да. Кстати посмотри удаляет ли он неиспользуемые строчки
Я бы делал mp4, только битрейт не хочется отдавать на говенный aac.
Если вырезать кусок видео без перекодирования по типу "ffmpeg -i "1.mp4" -ss 00:00:14.623 -to 00:00:34.297 -c copy "2.mp4"", то от начала и до первого ключевого кадра видео нет. Есть возможность перекодировать самый первый кадр в ключевой, а остальное оставить без перекодирования?
Уже похуй, перекатился на ффмпег.
Анонче, как правильно прикрутить сабы?
C:\Users\1>ffmpeg -i "name" -vf subtitles='C\:\\ffmpeg\\name' -ss 07:2
2.397 -to 07:26.182 out.webm
Работает только с экранированием, как настроить без экранирования?
И вообще, какого хера ффмпег тогда видит основной файл, а блядские сабы нихуя?
Ошибка:
[ass @ 000001e504113100] Unable to parse option value "ffmpegName" as image size
Last message repeated 1 times
[ass @ 000001e504113100] Error setting option original_size to value ffmpegName.
[Parsed_ass_0 @ 000001e503bec800] Error applying options to the filter.
[AVFilterGraph @ 000001e502f0dac0] Error initializing filter 'ass' with args 'C:Name'
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
Conversion failed!
Без экранирования выглядит так и выдает ту ошибку.
C:\Users\1>ffmpeg -i "C:\ffmpeg\Name.mkv" -vf ass="Name.srt" -ss 08:35.169 -to 08:
38.831 out.webm
Какую ТУ ошибку?
Где файл с сабами у тебя лежит?
Где ffmpeg?
Где видео файл?
Ты пути к файлам точно правильно прописываешь?
Не получается. Вот строка без скобок:
ffmpeg -i C:\ffmpeg\Chaos.mkv -vf ass=C:\ffmpeg\Chaos.ass -ss 16:29.778 -to 16:34.199 out.webm
Ошибка:
[ass @ 000002bc5f2bee80] Unable to parse option value "ffmpegChaos.ass" as image size
Last message repeated 1 times
[ass @ 000002bc5f2bee80] Error setting option original_size to value ffmpegChaos.ass.
[Parsed_ass_0 @ 000002bc5f246ec0] Error applying options to the filter.
[AVFilterGraph @ 000002bc5f16dc80] Error initializing filter 'ass' with args 'C:ffmpegChaos.ass'
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
Conversion failed!
Cо скобками:
ffmpeg -i C:\ffmpeg\Chaos.mkv -vf ass="C:\ffmpeg\Chaos.ass" -ss 16:29.778 -to 16:34.199 out.webm
Ошибка:
[ass @ 00000135297be980] Unable to parse option value "ffmpegChaos.ass" as image size
Last message repeated 1 times
[ass @ 00000135297be980] Error setting option original_size to value ffmpegChaos.ass.
[Parsed_ass_0 @ 00000135297be880] Error applying options to the filter.
[AVFilterGraph @ 0000013528e75480] Error initializing filter 'ass' with args 'C:ffmpegChaos.ass'
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
Conversion failed!
Не получается. Вот строка без скобок:
ffmpeg -i C:\ffmpeg\Chaos.mkv -vf ass=C:\ffmpeg\Chaos.ass -ss 16:29.778 -to 16:34.199 out.webm
Ошибка:
[ass @ 000002bc5f2bee80] Unable to parse option value "ffmpegChaos.ass" as image size
Last message repeated 1 times
[ass @ 000002bc5f2bee80] Error setting option original_size to value ffmpegChaos.ass.
[Parsed_ass_0 @ 000002bc5f246ec0] Error applying options to the filter.
[AVFilterGraph @ 000002bc5f16dc80] Error initializing filter 'ass' with args 'C:ffmpegChaos.ass'
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
Conversion failed!
Cо скобками:
ffmpeg -i C:\ffmpeg\Chaos.mkv -vf ass="C:\ffmpeg\Chaos.ass" -ss 16:29.778 -to 16:34.199 out.webm
Ошибка:
[ass @ 00000135297be980] Unable to parse option value "ffmpegChaos.ass" as image size
Last message repeated 1 times
[ass @ 00000135297be980] Error setting option original_size to value ffmpegChaos.ass.
[Parsed_ass_0 @ 00000135297be880] Error applying options to the filter.
[AVFilterGraph @ 0000013528e75480] Error initializing filter 'ass' with args 'C:ffmpegChaos.ass'
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
Conversion failed!
> Какую ТУ ошибку?
Что выше.
> Где файл с сабами у тебя лежит?
Рядом с видео. Сейчас для примера закинул в папку с Ффмпегом.
> Где ffmpeg?
C:\ffmpeg
Как по гайду Ретуза.
ffmpeg -i "C:\ffmpeg\Chaos.mkv" -vf subtitles='C\:\\ffmpeg\\Chaos.ass' -ss 16:29.778 -to 16:34.199 out.webm
>-vf ass=C:\ffmpeg\Chaos.ass
>-vf ass="C:\ffmpeg\Chaos.ass"
Наркоман :3
Надо вот так
-vf "ass=C:\ffmpeg\Chaos.ass"
>Сейчас для примера закинул в папку с Ффмпегом.
Тогда тебе можно делать просто
ffmpeg -i Chaos.mkv -vf subtitles=Chaos.ass -ss 16:29.778 -to 16:34.199 out.webm
Попробуй еще ffmpeg -i "C:\ffmpeg\Chaos.mkv" -vf subtitles="C:\ffmpeg\Chaos.ass"
И subtitles='C:\ffmpeg\Chaos.ass'
Алсо. Я, обычно. Запускаю скрипт кодирования из папки со всеми нужными ля кодирования файлами, а на фмпег ссылаюсь через путь.
Тогда можно делать так.
C:\ffmpeg\ffmpeg.exe -i Chaos.mkv -vf subtitles=Chaos.ass
> ffmpeg -i C:\ffmpeg\Chaos.mkv -vf "ass=C:\ffmpeg\Chaos.ass" -ss 16:29.778 -to 16:34.199 out.webm
Ошибка:
[libopus @ 000001759ac6c000] No bit rate set. Defaulting to 96000 bps.
[ass @ 000001759cd8ee00] Unable to parse option value "ffmpegChaos.ass" as image size
Last message repeated 1 times
[ass @ 000001759cd8ee00] Error setting option original_size to value ffmpegChaos.ass.
[Parsed_ass_0 @ 000001759cd19fc0] Error applying options to the filter.
[AVFilterGraph @ 000001759cc41300] Error initializing filter 'ass' with args 'C:ffmpegChaos.ass'
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
Conversion failed!
> Тогда тебе можно делать просто
ffmpeg -i Chaos.mkv -vf subtitles=Chaos.ass -ss 16:29.778 -to 16:34.199 out.webm
Ошибка:
Chaos.mkv: No such file or directory
> Попробуй еще ffmpeg -i "C:\ffmpeg\Chaos.mkv" -vf subtitles="C:\ffmpeg\Chaos.ass" -ss 16:29.778 -to 16:34.199 out.webm
[libopus @ 0000018db633bb80] No bit rate set. Defaulting to 96000 bps.
[subtitles @ 0000018db74eee80] Unable to parse option value "ffmpegChaos.ass" as image size
Last message repeated 1 times
[subtitles @ 0000018db74eee80] Error setting option original_size to value ffmpegChaos.ass.
[Parsed_subtitles_0 @ 0000018db74eed80] Error applying options to the filter.
[AVFilterGraph @ 0000018db6ba66c0] Error initializing filter 'subtitles' with args 'C:ffmpegChaos.ass'
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
Conversion failed!
> ffmpeg -i "C:\ffmpeg\Chaos.mkv" -vf subtitles='C:\ffmpeg\Chaos.ass' -ss 16:29.778 -to 16:34.199 out.webm
Ошибка:
[libopus @ 00000237d78cbb80] No bit rate set. Defaulting to 96000 bps.
[subtitles @ 00000237d8227dc0] Unable to parse option value "ffmpegChaos.ass" as image size
Last message repeated 1 times
[subtitles @ 00000237d8227dc0] Error setting option original_size to value ffmpegChaos.ass.
[Parsed_subtitles_0 @ 00000237d8227cc0] Error applying options to the filter.
[AVFilterGraph @ 00000237d8155340] Error initializing filter 'subtitles' with args 'C:\ffmpeg\Chaos.ass'
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
Conversion failed!
> Попробуй еще ffmpeg -i "C:\ffmpeg\Chaos.mkv" -vf subtitles="C:\ffmpeg\Chaos.ass" -ss 16:29.778 -to 16:34.199 out.webm
[libopus @ 0000018db633bb80] No bit rate set. Defaulting to 96000 bps.
[subtitles @ 0000018db74eee80] Unable to parse option value "ffmpegChaos.ass" as image size
Last message repeated 1 times
[subtitles @ 0000018db74eee80] Error setting option original_size to value ffmpegChaos.ass.
[Parsed_subtitles_0 @ 0000018db74eed80] Error applying options to the filter.
[AVFilterGraph @ 0000018db6ba66c0] Error initializing filter 'subtitles' with args 'C:ffmpegChaos.ass'
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
Conversion failed!
> ffmpeg -i "C:\ffmpeg\Chaos.mkv" -vf subtitles='C:\ffmpeg\Chaos.ass' -ss 16:29.778 -to 16:34.199 out.webm
Ошибка:
[libopus @ 00000237d78cbb80] No bit rate set. Defaulting to 96000 bps.
[subtitles @ 00000237d8227dc0] Unable to parse option value "ffmpegChaos.ass" as image size
Last message repeated 1 times
[subtitles @ 00000237d8227dc0] Error setting option original_size to value ffmpegChaos.ass.
[Parsed_subtitles_0 @ 00000237d8227cc0] Error applying options to the filter.
[AVFilterGraph @ 00000237d8155340] Error initializing filter 'subtitles' with args 'C:\ffmpeg\Chaos.ass'
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
Conversion failed!
Подожди....
> скрипт кодирования из папки со всеми нужными ля кодирования файлами
Вот это заработало!
Анонче! Ты охуенен, спасибо тебе. Галлоны чая/кофе/пива/плюшек и прочих вещей.
>Chaos.mkv: No such file or directory
А он у тебя есть? Наркоман?
Файл то?
Откуда ты все это запускаешь кстати?
Я надеюсь из .bat файла?
Мои поздравления.
Суть такова, есть видео в интернете. Мне надо не скачивая его, сделать из него плейлист m3u8. А потом когда пойдёт запрос из плейлиста "на лету" обращаться к файлу в интернете по этим кейфреймам. Такая многоходовочка!
https://hive.blasux.ru/webm/s/#A.2BBBoEMAQ6_.2BBDIESwRABDUENwQwBEIETA_.2BBEMERwQwBEEEQgQ.2BBDo_.2BBDIEOAQ0BDUEPg_.2BBDEENQQ3_.2BBD8ENQRABDUEOgQ.2BBDQEOARABD4EMgQwBD0EOARP-
> Способы узнать метки времени ключевых кадров:
Спасибо, это круто, но основная проблема это получать кейфреймы например ближайшие к определённому времени, либо с интервалом. Типа задал интервал 30, а он показывает какой кейфрейм находится ближе всего к этому времени\интервалу
Не обратил внимание на вторую часть с ffprobe. Хорошо, что ещё раз зашёл. Ща попробую. Спасибо.
Увы, broken pipe. Хотя идею можно развить.
У него же промежуточный пасслог-файл всегда одинаково называется. Сдаётся мне, два инстанса пишут параллельно в один логфайл и ничего не чекают.
ffmpeg -i 1.mkv -vf "ass=1.ass" -acodec copy -c:v h264_amf result.mp4
В итоге на видео получается слишком много шумов, при размере файла в 2 раза меньше оригинала. Есть какие гайды для оптимизации видео?
ffmpeg -i 1.mkv -vf "ass=1.ass" -c:a copy -c:v h264_amf -crf 20 -preset slow result.mp4
-crf - качество, меньше число - лучше качество, 0 - вообще без потери качества.
Указал биттрейт на уровне источника (4М), качество осталось прежним.
>>343048
>ffmpeg -i 1.mkv -vf "ass=1.ass" -c:a copy -c:v h264_amf -crf 20 -preset slow result.mp4
>-crf - качество, меньше число - лучше качество, 0 - вообще без потери качества.
Ставил crf 0, качество вроде прибавилось, но все равно говно.
Но я похоже понял, что хардварный энкодер лучше сделать просто не может, или я просто не тот использовал? Видеокарта Radeon RX 550, энкодер -c:v h264_amf.
А ещё я разочаровался в вебм, мп4 победил его безоговорочно из-за совместимости со всем, даже с небом и Аллахом.
бамп
> Если сейчас - нет, то когда?
когда аппратные декодеры аш265 будут обыденным делом у всех. и 4к повсеместно
Есть шинда и Лубунта.
Хочу записать экран со звуком.
1. Винда.
А. gdigrab - не позволят выставить битрейт, пресет, тюны. В результате машина нитянет.
Б. screen-video-recorder - ещё та писька, притянула дочерта Ruby-говна в систему, требует Java Runtime, ещё и не работает при этом (изображения в видео нет, чисто звук остаётся, сам ffmpeg ничего не подозревает)
2. Lubuntu/x11grab
x11grab-то молодец, но -f alsa оставляет пустую дорожку звука, я правильно -i hw SOURCE выбрал, в alsamixer чекнул, девайс взял из arecord -l. Всё равно ничерта, звука нет.
В общем, если писали через ffmpeg, то отпишите дистр/способ. Ну и если я по факту обосрался где-то, тоже напишите
мб -threads нужно прописать
github.com/pituz/webm-thread/wiki
>>349181
Захват видео/аудио с помощью FFmpeg https://trac.ffmpeg.org/wiki/Capture/Desktop
Захват звука с ALSA с помощью FFmpeg (Linux only)
https://trac.ffmpeg.org/wiki/Capture/ALSA
Open Broadcaster Software (может захватывать контекст OpenGL/Direct3D)
https://obsproject.com/
Несколько советов:
Если нужно получить видео в формате WebM, то лучше всего захватывать как H.264 lossless/WAV (см. ссылки выше), а затем пережимать в VP9/Opus двумя проходами
При захвате звука, на входе желательно указывать параметры -rtbufsize 1M -thread_queue_size 64, иначе возможны переполнения буфера и разрывы аудиодорожки
По умолчанию видео будет иметь цветовую субдискретизацию 4:4:4, которая плохо поддерживается браузерами; следует использовать опцию -pix_fmt yuv420p
При использовании цветовой модели YCbCr (основная для большинства форматов), полученное видео будет иметь цветовую матрицу BT.601 (дефолтная для FFmpeg), поэтому результирующую WebM лучше соответствующим образом промаркировать (-colorspace bt470bg)
>При использовании цветовой модели YCbCr (основная для большинства форматов), полученное видео будет иметь цветовую матрицу BT.601 (дефолтная для FFmpeg), поэтому результирующую WebM лучше соответствующим образом промаркировать (-colorspace bt470bg)
Нахуя?
>>343025
ffmpeg -i 1.mkv -c:v ffv1 -g 1 -qmin 1 1.avi
ffmpeg -i 1.avi -c:v ffv1 -g 1 -qmin 1 -r fps от 1.mkv -vf ass=1.ass 2.avi
ffmpeg -i 2.avi -c:v libx264 в MediaInfo посмотреть Encoding settings 3.mkv
У меня всё заебись и без этой настройки.
На скрине хромиум 67.
Где взять исходник пикчи на видео?
> каждые n времени (или кадров)
Ну это надо шкриптец писать. А ты хочешь несколько файлов это еще и в один пнг объединить?
Команда будет типа такой
ffmpeg -ss $xx -i file.mkv -vf crop=w:h:x:y -vframe 1 image_$xx.png
$xx - секунда с которой вырезать картинку
w - длина картинки
h - высота картинки
x,y - координаты левого верхнего угла картинки внутри видео
Эту команду надо в шкрипт прописать, который будет подставлять $xx в команду
Получилось сделать этим:
ffmpeg -i file.mp4 -vf crop=w:h:x:y image%d.png
Делать столько же картинок, сколько fps у видео. Как изменить?
Попробуй
ffmpeg -i file.mp4 -vf crop=w:h:x:y -r $x image%d.png
где $x = длина видео / сколько картинок хочешь
Странно? Длину видео в секундах указал?
Я вот проверил
ffmpeg -i test.mp4 -r 15/220 image_%03d.png
Впринципе работает
Получилось, спасибо.
Как фиксить?
Делай жипеги, если у них нет проблем с превьюшками или стикеры
>>362436
>>362271
>>362277
https://github.com/Kagami/boram/releases
Слушай, любезный, сделай уже appimage, похуй сколько весить будет.
ffmpeg.exe -i https://bitdash-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f
0f6155f6efa.m3u8 -loglevel trace
ffmpeg version N-91548-g481741ece0 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 7.3.1 (GCC) 20180722
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enabl
e-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-
libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-l
ibtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --en
able-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-l
ibvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enabl
e-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth
libavutil 56. 18.102 / 56. 18.102
libavcodec 58. 22.100 / 58. 22.100
libavformat 58. 17.101 / 58. 17.101
libavdevice 58. 4.101 / 58. 4.101
libavfilter 7. 26.100 / 7. 26.100
libswscale 5. 2.100 / 5. 2.100
libswresample 3. 2.100 / 3. 2.100
libpostproc 55. 2.100 / 55. 2.100
Splitting the commandline.
Reading option '-i' ... matched as input url with argument 'https://bitdash-a.akamaihd.net/content/MI201109210084_1/m3u8
s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'trace'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option loglevel (set logging level) with argument trace.
Successfully parsed a group of options.
Parsing a group of options: input url https://bitdash-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8
899-f0f6155f6efa.m3u8.
Successfully parsed a group of options.
Opening an input file: https://bitdash-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6ef
a.m3u8.
[NULL @ 0000000000508100] Opening 'https://bitdash-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899
-f0f6155f6efa.m3u8' for reading
[https @ 0000000000509b80] Setting default whitelist 'http,https,tls,rtp,tcp,udp,crypto,httpproxy'
###ЗДЕСЬ ДОЛГО ВИСИТ###
[tls @ 000000000050b580] Error in the pull function.
ffmpeg.exe -i https://bitdash-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f
0f6155f6efa.m3u8 -loglevel trace
ffmpeg version N-91548-g481741ece0 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 7.3.1 (GCC) 20180722
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enabl
e-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-
libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-l
ibtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --en
able-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-l
ibvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enabl
e-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth
libavutil 56. 18.102 / 56. 18.102
libavcodec 58. 22.100 / 58. 22.100
libavformat 58. 17.101 / 58. 17.101
libavdevice 58. 4.101 / 58. 4.101
libavfilter 7. 26.100 / 7. 26.100
libswscale 5. 2.100 / 5. 2.100
libswresample 3. 2.100 / 3. 2.100
libpostproc 55. 2.100 / 55. 2.100
Splitting the commandline.
Reading option '-i' ... matched as input url with argument 'https://bitdash-a.akamaihd.net/content/MI201109210084_1/m3u8
s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'trace'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option loglevel (set logging level) with argument trace.
Successfully parsed a group of options.
Parsing a group of options: input url https://bitdash-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8
899-f0f6155f6efa.m3u8.
Successfully parsed a group of options.
Opening an input file: https://bitdash-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6ef
a.m3u8.
[NULL @ 0000000000508100] Opening 'https://bitdash-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899
-f0f6155f6efa.m3u8' for reading
[https @ 0000000000509b80] Setting default whitelist 'http,https,tls,rtp,tcp,udp,crypto,httpproxy'
###ЗДЕСЬ ДОЛГО ВИСИТ###
[tls @ 000000000050b580] Error in the pull function.
Почему он свалил отсюда? У него же здесь был тред про boram
Если нет то какую версию качать и где?
Спасибо, попробую.
Не будет.
А с чем может быть связано то, что пару пикселей пропадает?
Указал ширину 247 например, а на выхоже 246.
MediaInfo/ffprobe
Чет значит я проебалсЯ. В другом треде что ли смотрел. Спасибо.
>-crf - качество, меньше число - лучше качество, 0 - вообще без потери качества
А мануалы мы читаем жопой? crf всегда будет изменять качество ВСЕ мать его ити ГДА, для кодирования без потерь используется кодирование с постоянным квантизером, режим --qp, --qp 0 = lossless
854x480, 0:11
> Если появляется ошибка:
Ще один жопочтец, сложно осилить справку по используемому фильтру?
Параметр -1 прочти, что делает и не надо будет вручную чего-то выставлять. Каждый раз одно и тоже и ведь от какого-то мудака вы этой лишнехромосомностью заразились. Я даже не буду говорить, как правильно, просто иди и читай мануалы, мудила. и нет, кагами-питузодрысня это не мануалы, от них ещё больше спидорака сюда нести будешь
> создатели васяносборки что-то пукнули
Хорошо, беру твоих васянов и поднимаю до девелопера.
В чем конкретно разница режима --qp и --crf читай тут https://forum.doom9.org/showthread.php?t=106408
А можешь, коли ты рукастый линупсойд, провести тест, взять лосслесс видео и сжать его crf 0 и qp 0, а зачем проверить метрики, psnr должна указать бесконечность,а ссим 1, но сим не проверял.
Допускаю, что использование crf 0 дегенераты из разработчиков ffmpeg могут транслировать энкодеру как -qp 0, но опять же чья это вина, что они по своему усмотрению решают за пользователя? Как в случае с системой выбора режима кодирования в libvpx
Нет, ты иди читай мануалы, я один раз только здорового человека на бордах видел, который осознано использовал эту команду и знал зна чение. Надо объявить войну безграмотности.
И поддерживает ли борда 265 или даже поддерживает ли его ffmpeg.
400x400, 0:28
MS Internet Explorer Microsoft Edge Safari
http://trac.ffmpeg.org/wiki/Encode/H.265
http://x265.readthedocs.io/en/default/
https://help.ubuntu.ru/wiki/ffmpeg
Да мне строчка нужна с нужными параметрами, а то вот эти црф и т.д. херня ненужная которая не помогает под лимит подвести.
400x400, 0:28
Кхе..кхе..
Для несложных исходников вроде анимации имеет смысл выставить -qmax в районе 30÷35, чтобы избежать undershoot (или использовать CRF, например: -b:v 0 -crf 25). Так или иначе, полностью промахов мимо лимита не избежать. Если промах составляет несколько мегабайт, лучше перекодировать видео со слегка изменёнными -crf/-qmin/-qmax. Можно перекодировать только аудио и перемуксить со старым видео, эта операция занимает совсем немного времени.При совсем небольшом overshoot в районе десятков килобайт, перемуксить с помощью mkvmerge может быть достаточно (муксер mkvmerge чуть более эффективен, чем FFmpeg). Ещё один вариант — обрезать секунды или доли секунды с конца (-c copy -t ??), если исходный хронометраж не критичен.
ffmpeg -i /directory/file.avi -pix_fmt yuv420p -s 1920x1080 -sar 1:1 -aspect 16:9 -vsync 0 -r 23.976 -vcodec libx264 -profile high -level 4.1 -x264-params input-range=pc:range=pc:me=esa:subme=11 -b 6400K -me_range 32 -g 240 -bf 2 -keyint_min 24 -b-pyramid 1 -fast-pskip 0 -refs 4 -i_qfactor 1.00 -qdiff 1 -mbtree 0 -trellis 2 -acodec ac3 -ac 6 -ab 640k -ar 48000 -vol 256 -f
> как в мп4 нормально конвертить, в лучшем качестве и т.д.
Сложно, долго объяснять, кодируй в однокомандном vp.
ffmpeg -i "input_file.mp4" -c:v h265 -preset slow -tune film -b:v (битрейт какой хочешь) -c:a aac -b:a 128k "output_file.mp4"
>в лучшем качестве
Если разрешение исходника меньше 2к, то заморачиватся с vpx/h265 нет никакого смысла. Конвертация очень медленная в сравнение с x264, а качество/вес такое же или даже хуже как в случае с vp9.
Пробуй
-b:v 0 -crf 33 -qmin 15 -qmax 42 -c:v libvpx-vp9 -quality good -g 240 -speed 2 -pass 1
-speed 0 -pass 2
> с vp9 постоянно так
Знаешь, у меня есть решение, но так как абу мудак и гугл капчу мне пришлось вводить 20 раз, я его не стану озвучивать.
И чё? Я блять не себе в коллекцию кодирую чтобы нормально качество было, а блять под нужный битрейт. Я блять знаю что такой црф, не напишешь как мне это поможет получить hq под нужный размер можешь нахер пойти.
> Я блять знаю что такой црф
Заметно
-crf 33 -qmin 15 -qmax 42 - недолет
-crf 30 -qmin 12 -qmax 40 - перелет
-crf 31 -qmin 13 -qmax 42 - 18.2mb + opus/vorbis=20480kb+-1
Есть скрипты, но хуй.
И? Это типа мне надо ебаться каждый раз с перелётом недолётом? Формулу по расчёту не кинешь, да?
На глаз
input 1280:720 -t 1:30 30mb ~ -crf 20 -qmin 10 -qmax 35
input 1280:720 -t 1:30 60mb ~ -crf 35 -qmin 25 -qmax 42
pass 1 -speed 4 -pass 2 speed 2 займет ~10-15 мин на i5u
vp9 - cpu-used 1 в два прохода конвертировал 1-2 кадра в секунду. В итоге файл больше на 600кб, а качество - полное говнище.
h264 - preset slower в два прохода конвертировал 10-15 кадров в секунду, качество заметно лучше, вес файла меньше.
Вывод: vp9 ненужен.
Великолепная выборка, а так же описание режима кодирования.
>Вороны
На фоне типа? Я уже делал эту вебмку, только с очень хуёвого исходника, и кидал в б. И мне кажется кто-то уже писал что там вороны на фоне.
> vp9-2000k.jpg
> h264-2000k.jpg
А теперь заэнкодь с одинаковым crf.
> cpu-used 1
Оно вроде и так по умолчанию 1.
> А теперь заэнкодь с одинаковым crf
1. У них разные уровни, файл с vp9 будет больше на одинаковых crf
2. Зойчем кодировать x264 на crf? Там реализован великолепный рет контроль, что все кванты попадают прямо в рай и видео в 2 прохода и видео с crf в один размер практически идентичны. Это не мои слова, это слова разработчика http://forum.doom9.org/showthread.php?t=143904
Мои только тесты, подтверждающие это. Вот вп9 да, там все плохо, рейтконтроль vbr полное дерьмо, которое нужно ограничивать q-max, чтобы он не падал на 63 квантизеры, но с тем же успехом можно подобрать нужный crf за время подбора этого q-max.
>>370488
> тубчек
)
Чтоб они всем составом аниме всю жизнь в своём вп экономном смотрят.
смотрели*
>Тубчег экономит
Он экономит только на разрешении 2к и выше, в остальном тоже самое как с х264 или хуже, но только конвертирует в 10 раз медленней x264. Зачем оно нужно?
> в остальном тоже самое как с х264 или хуже
Я значит, как мрась, изучал ависинт, писал скрипты, облизал каждую настройку х264 чтобы он выдавал качество выше, либо равное супротив двухпроходного crf vp9 вплоть до crf 44-48, а оно оказывается и так выдает качество такое же или лучше. Полгода в мусорку, сотни закодированных эмпчетырёшек, бешеные счета за свет и все в пустую..
Так и есть.
> Трафик экономит
О пакете яровой печешься? На дворе не эпоха модемов, чтобы переживать за трафик, за глаза бы лучше переживал. Смотреть трубу без плагина, который вырубает там vp9 просто невозможно, если у тебя зрение не -10.
плагин называется Safari
https://youtube-eng.googleblog.com/2016/05/machine-learning-for-video-transcoding.html
https://youtube-eng.googleblog.com/2016/04/a-look-into-youtubes-video-file-anatomy.html
>>370806
Режут битрейт сцуки
A way to think about this is to imagine the bandwidth available to a user, as a pipe shown in Figure 3. Given the pipe’s capacity fits a 360p chunk but not a 480p chunk, we could tweak the 480p chunk size to be more likely to fit within that pipe by estimating the streaming bandwidth, thereby increasing the resolution users see. We solved the resulting constrained optimization problem to make sure there was no perceivable impact to video quality. In short, by analyzing aggregated playback statistics, and correspondingly altering the bitrates for various resolutions, we worked out how to stream higher quality video to more users.1
https://youtube-eng.googleblog.com/2018/04/making-high-quality-video-efficient.html
>>370810
> эпоха модемов
Давно за городом бывал?
8г - день 17г - ночь 3г от мегафона. А мобилки, с мобилки то как?
> Смотреть трубу без плагина
1080p и все?
-2
> скачивать маняме
Сидов много, а Тытруба один
> Давно за городом бывал?
А в тайге, в тайге ваще не ловит! Как с рашна жить!
> 8г - день 17г - ночь
Градусов?
> А мобилки, с мобилки то как?
4к видео для мобилки?
Но даже если оставить лирику и помнить о братьях меньших, то зачем забывать о людях приличных? В деревнях и денег не плотют, так может бесплатно теперь работать будешь? Нет центрального отопления и сортира, так что теперь весь город заставим дрова рубить и на улице испражняться? vp стоит по умолчанию на всех устройствах, а не только когда "инторнет то плохой/мобильный", хотя ничего это реализовать им не запрещает.
> 1080p и все?
Опять LAMPEG в штаны подкинула?
> тайге
И в степи
Грамм
> 4к
Моторолки, соньки, леновы, нокии, апполы, самасунхи и прочие хоноры. Даже за 8к рублев!
Доступность для всех. Ссылки выше
Ибо халява и нехуй тут!
Да и about:config media.av1.enabled true accessibility.AOM.enabled true
#enable-av1-decoder flag in chrome://flags
> LAMPEG
MPEG LA, LLC
Видео 4к/2к с тытрубы через плагин быстрабля
> Доступность для всех
С таким дерьмокачеством да, только на 1'' экране смотреть.
> Ссылки выше
По ссылкам я ещё не переходил с двачей.
> Видео 4к/2к с тытрубы
А оно там есть, чтобы тебе труба его казала? Причем тут ЛАМПЕГ и ональные ограничения гугля?
Благодарю, но что из этого набора кракозябр микрофон?
[dshow @ 00000000004c0840] DirectShow audio devices
[dshow @ 00000000004c0840] "ЬАД (Realtek High Definiti"
[dshow @ 00000000004c0840] Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\ЬАД (Realtek High Definiti"
[dshow @ 00000000004c0840] "бВА ИА (Realtek High Def"
[dshow @ 00000000004c0840] Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\бВА ИА (Realtek High Def"
И эти иероглифы не пропишешь же в название, а они даже в альтернативном имени. Есть какое то решение кроме винды на инглише?
Выяснилось, что проблема только с https. Может какая-то проблема с сертификатами? Куда копать?
> input 1280:720 -t 1:30 30mb ~ -crf 20 -qmin 10 -qmax 35
> input 1280:720 -t 1:30 60mb ~ -crf 35 -qmin 25 -qmax 42
>>370241
> -crf 33 -qmin 15 -qmax 42 - недолет
> -crf 30 -qmin 12 -qmax 40 - перелет
> -crf 31 -qmin 13 -qmax 42 - 18.2mb + opus/vorbis=20480kb+-1
Cразу не обратил внимание, что ты занимаешься онанизмом.
1. При кодировании в crf квантизеры не будут опускаться ниже указанной границы(qmax тереби, не тереби). Так работает их кодирвоание с, по их мнению(рис.2), постоянным квантизером, хотя это не правда, их квантизеры колеблются(рис.3), как и квантизеры x264, при кодировании crf, но если у 264 они колеблются и вниз и вверх в зависимости от типа фрейма, в зависимости от динамики/сложности фрейма, то у vp они колеблются только вниз, так же скорее всего в зависимости от типа фрейма, ну золотой понятно, но ещё есть референс и вообще внутренние алгоритмы дерьма.
2. Повышать qmin следует только если crf достиг 63, иначе ты будешь ловить некачественные фреймы. Ну тут палка о двух концах. Ты можешь повысить qmin и одновременно из-за уменьшившегося размера понизить crf (q). Получишь более высокое качество на большей части, но необходимые для работы энкодера фреймы будут сжаты хуже, это может повлиять на те же референсные фреймы, из-за чего блоки для транляции будут хуже.
3. Ну и рейт контроль vbr(рис.4), что ни у кого не возникало даже мыслей в нём кодировать. Вот тут стоит q max теребить.
А, ещё не заметил у тебя использования 2 проходов. Есть ли у Вас минутка поговорить об альтернативных фремймах?
Как видно из распределения в однопроходном режиме, в котором альтернативные референс фреймы не могут быть использованыйквантизер чаще опускается ниже установленного, но качество заметно хуже, чем у двухпроходного с альтернативными референс фреймами. Плюс в однопроходном там при скалировании размер на одной q будет расти.
Помню четыре года назад я впервые попробовал ещё тогда VP8 (а я ещё помню VP6 и VP7). Там сразу было понятно, что в старом добром стиле On2 получилось обыкновенное говно. Не удивительно, что за четыре года ничего не изменилось.
Вот помню, в 2004-2005 годах впервые попробовал libx264, так к 2008-2009 гг. кодер стал просто великолепным.
Тут, как говорит один уважаемый мной человек: «вот рост продаж Ford в начале XX века, и это прорыв, а вот жалкие потуги мошенника Маска! Почувствуете разницу». Вот тут совершенно также.
Ну, в принципе, верно, но одно но, х264 обязан очень многим комьюнити, которое его пилит и по сей день. Например психовизуальным накруткам треллис 2 и пси-рд, 3 режиму адаптивной квантизации и т.д. Вылизали нет слов, но на мелкие битрейты не претендует.
vp9(особенно вп9) и hevc очень мыльные и структура кадра мне не нравится, у вп8 была лучше, но он был хуже 264 везде. Хотя кому-то нравится структура mpeg2
>>376113
В чем пик делан? Как-то что мс офис, что либре/опен делают слишком убогие графики для таких тонких материй.
> Вылизали нет слов, но на мелкие битрейты не претендует.
Да. Хорошо отработаны только профили High. В этом весь цимес разработки сообществом — каждый пилит то, что интересно именно ему. Вот ребята и запилили шикарный кодер для High Profile. Я ситуацию с VP8 и VP9 примерно так себе и предвосхищал, как оно получилось на практике — мотивация разработчиков так себе, и кодер так себе.
> В чем пик делан?
SciDaVis, но сейчас есть гораздо более качественные альтернативы (сразу не подскажу, потому, что последнюю пару лет выпускаю документы с графиками только под ч/б печать, а там — только pgfplots, только хардкор).
Не помогло. Хуй знает куда копать. Проблема где-то в лоакльном аккаунте, так как на новосозданном - норм открывается.
Этой картинке уже много лет. Раньше, кстати, превью было лучше настроено и подхватывало фон.
> Раньше
И как бы тогда господин Эйбу смог бы продавать стикеры, если бы любое изображение с альфаканалом с фоном сливалось?
Я про этот весь интим не в курсе, и не стремлюсь узнать. Но считаю, что альфа-каналы для вёба — это что-то естественное и само собой разумеющееся (ну, прямо как циклы, ветвления и генератор случайных чисел в postscript) и каждый въёб-дизихнер должен это учитывать.
Чем вам http://ffmpeg.org/documentation.html не нравится ?
Вам не хватает репера лицо в шебм треде ? Вы хоите дауничей научить постить видосы ?
Ты бы лучше спал, не понятно на что и зачем ответил.
> Потереби на 40 +-5-7
Какую часть фразы "не влияет ни на что" ты не допонял? Там даже прикрепленный с распределение квантизеров в этом режиме есть..
> Ради него и теребим
Оно настолько ничтожно, что нивелируется. Поясню по картинке, ты, как-то не осилил, ты ставишь minq=15 и 92 фрейма грубо, на самом деле, там весь расклад меняется не закодируются с q<15, а закодируются с q=15, что не шибко много освободит места, можешь картинки пожать и посмотреть разницу в размере. И вот эта разница размазывается на остальные 2000 фреймов. Много качества выиграешь? А хреновый референс фрейм с шакалом [CODE]на 15 их нет, конечно,[/CODE] тебе потом размажет на пару секунд, а то и больше.
> Да и пес с ними
Вот как это работает.
А впрочем, десу с вами.
"не влияет ни на что при кодировании с постоянным качеством"*
Создаешь в папке с гифкой файл "files.txt", внутри, которого пишешь
file 'gifname.gif'
и копируешь её много раз, чтобы наверняка хватило, если не хватит, то добавляешь в файл ещё строчек.
После этого
ffmpeg -f concat -i files.txt -i audio.mp3 параметры кодирования -shortest video.webm
Отвечаешь на пост в 10 дней, тебе скучно и одиноко?
Тереби
Между qmin 1 и 15 при одинаковых qmax crf ~ 1-2mb, а шакалы > на 15 их нет, конечно
Ты же понимаешь, что я так не тереблю >>370241 >>370274 и это пример?
>>377445
Руби на кадры
https://github.com/pituz/webm-thread/wiki/Pro-tips#Создание-музыкальных-лупов
> приносишь историю выборки квантизеров
> не могут сложить 2+2
Ясно. Оставляю вас с невежеством наедине.
Как научишься нормально писать инструкции для макак тогда и приходи.
>мотивация разработчиков так себе, и кодер так себе
Ваще-то гугл его пилил для себя и сделал как ему надо.
Ему не надо качество, ему надо видосики в низком битрейте на ютубе отдавать, чтобы трафика меньше уходило. И это у него получилось - таки libvpx на битрейтах ютуба лучше x264.
С AV1 есть хоть шанс, что мозилловцы получше энкодер запилят (rav1e), с хорошим рейт контролем и без мыла. Пока там смотреть нечего, конечно.
> ему надо видосики в низком битрейте на ютубе
Стоимость гигабайта давно уже копеечная и на пользователей они плевать хотели, а вот запрет монетизации роликов сконвертированных x264 уже совсем другой вопрос.
Что за бред ты пишешь?
Они не думают, что у пользователей на мобилках всё тормозить будет?
Им не надо покупать/расширять каналы магистральщиков?
Они не состоят в MPEG-LA?
Фейспалм.
> HEVC Advance will no longer license nor seek royalty fees for non-physical HEVC content distribution including Internet streaming, cable, over-the-air broadcast, and satellite
Будут ли только добавлены поддержки в тормозилу и хром?
> Хорошие новости
Новость в том, что патентопидоры прикинули платёжеспособность спроса и поняли, что на h.265 в рыночек не вписался. Наверное потому, что он говно (слишком много вычислительной мощи против слишком малого снижения трафика). Падающий возврат, видимо, на долгие годы впишет h.264 как мейнстрим.
> он говно (слишком много вычислительной мощи против слишком малого снижения трафика)
Ты скозал или есть тесты?
Четыре года назад всё было совсем плохо
http://x265.ru/compare-x265-and-x264-for-encoding-crf/
Сомневаюсь, что дело стало намного лучше. Как-то быстро нагуглить достойное сравнение не получилось. Можем прямо тут организовать своё, с временем кодирования и SSIM-оценками.
Там кроме hevcadnvace ещё пулы есть, например Velos Media, которые ничего не обещали.
Только какая фиг разница, если в фф и хром хевца НЕ БУДЕТ, твёрдо и чётко. Иначе нафига они AV1 делали?
https://bugzilla.mozilla.org/show_bug.cgi?id=1332136
https://bugs.chromium.org/p/chromium/issues/detail?id=684382
Предлагаю тест с с временем кодирования и SSIM-оценками.
План такой:
1. Берём последовательность CrowdRun (1920×1080p@50) из https://media.xiph.org/svt/SVT_MultiFormat_v10.pdf
2. Кодируем x265 2.2 с какими-нибудь опциями. Засекаем время и объём памяти, отмечаем SSIM-оценку. Измеряем длину хуя от ануса файла.
3. Кодируем x264 0.148 с моими любимыми параметрами. Засекая время и объём памяти. подбираем оценку SSIM под ту, которая получилась с x265. Измеряем длину файла.
4. Сопоставляем: коэффициент укорочения файла — коэффициент вычислительной нагрузки (корень квадратный из произведения коэффициентов увеличения памяти и увеличения времени).
5. Выносим вердикт.
Принимаются предложения, хуле!
И вообще-то x265 уже 2.8.
О нет, адекваты прорвались в этот тред. Я вообще не понял о чем они, если разговор затевался вп9 или хевк, при условии бесплатности последнего. Причем тут 264.
Гугл хорошо запудрил мозг попенсорщикам.
Все очень просто, Гугл зажал деньги для уплаты royalty, замутил кривой говнокодек и теперь просто гребет лопатой бабки с рекламы и платных подписок, а пердоли его еще защищают.
>software decoding has become highly viable
За такое их вообще обоссать мало.
Предпочитаю, чтобы из объектов сравнения хотя бы один был годнотой.
>>378421
Я ясно написал, что я хочу узнать. Я хочу узнать подтвердить или опровергнуть тезис о том, что x265 не нужен. Не нужен он потому, что в 2005-2010 годах в год производительность десктопных камней росла вовсе не на жалкие 10%.
Обоснуй, что именно так надо!
inb4 — абсолютное большинство мониторов и телеков пока ещё fullhd.
> росла вовсе не на жалкие 10%
Производительность камней к кодированию х264 имеет не слишком прямое отношение --no-asm в помощь.
> Производительность камней к кодированию х264 имеет не слишком прямое отношение --no-asm в помощь.
Что сказать хотел-то?
>Обоснуй, что именно так надо!
Потому что для 4k h264 нужен битрейт минимум 20mbps, а для h265 достаточно 10mbps.
А вп9 по всем параметрам считается лучше h264, но как-то не очень похоже. Я лучше на jvet поставлю.
Он планируется для тех же целей: доставлять потоковое видео на 5" экран мобилки по 2г каналу, насколько хорош он может быть с такими установками?
>>378461
Ответ генитальный.
А как решать в этих условиях противоречие между желанием получить лучшую детализацию на 4k и размазнёй из под x265? Не проще уменьшить разрешение, пожать x264 и потом растянуть?
> любимые опции
Понять бы что там половина ключей делает и почему в обычной справке есть всякие multi-pass-opt-analysis/multi-pass-opt-distortion/analyze-src-pics, а обычный qcomp перехал в fullhelp, который ещё и вызывается как --log-level full --help
Поставил тестовый прогон посмотреть что по сд видео по сравнению с 264 и vp
Окей, нашел что-то другое
for file in *.aac; do ffmpeg -i "$file" "${file%.aac}".mp3; done
Но оно не работает (и вообще должно?), появляется вот это -
Непредвиденное появление: file
второй день в ffmpeg и я не прохромист :(
ffmpeg -ss 53 -t 146 -i "video.mp4" -vf "subtitles=sub.srt" -vf scale=1098:480 -map 0:v:0 -map 0:a:1 -c:a aac -b:a 96k -c:v libx264 -crf 26 -maxrate 800k -bufsize 400k -y wasp3.mp4
Иди проверяй способ, что тебе в треде дали.
Бывают попадаются фильмы с очень тихим звуком. Как автоматически поднять громкость звука у тихой аудиодорожки до приемлемого?
Тестовые видосы подъехали.
Помогите спермачу как научиться конвертить .swf файлы в h264 с помощью ffmpeg.
Так и думал.
Первая ссылка в гугле, няша
https://helpx.adobe.com/ru/after-effects/using/rendering-exporting-flash-professional-flash.html
А ты как думал? Адовъ Флещъ такой Адовъ Флещъ. Днище из днищ, говно из говен. Ну, воровать Адовъ Флещъ, Афрердефектц или Соснивегас не обязательно. Можно и браузерным плагином проиграть, а дальше >>393888. Интерактивность опять же в SWF никто не отменял.
В своё время у меня был простой SWF, в котором была примитивная анимация без интерактивности. Тогда рендерил gnash-ем (у него есть вывод не на экран, а в пачку png-шек), но это не тот случай, наверняка.
1280x720, 0:19
Почему ffmpeg постоянно криво обрезает звук в самом начале?
Ну в манах такой пример часто приводится. А как правильно резать без потери качества?
> А как правильно резать без потери качества?
Никак. У кадров видео и звука в общем случае разный и не кратный хронометраж. Некоторые форматы, например, AC3, по этой причине имеют специальные флаги отступов от краёв кадра (для синхронизации с видео). По-идее у современных контейнеров, например, в матрёшке эта же синхронизация должна быть реализована средствами контейнера, но не факт, что ffmpeg в это умеет.
Просто пережми звук и не еби мозги никому! Разницу на слух мало кто уловит.
Спасибо за разъяснение. Т.е. надо сначала звуковую дорожку извлекать/обрезать/пережимать, а потом с обрезанным видео объединять? Рассинхрон в таком случае не появится?
Тред опа-хуя не читал.
Если стоит задача конкатенации видео, то могу сказать, что тут есть 2 стула:
1. Полный проход по кадрам - ну тут понятно, это дорогостоящая по времени и процу операция.
2. Если оба твоих видео в формате MPEG (mp4) - то можно склеить их, не проходясь по кадрам каждого из них, очень быстро, за пару секунд.
Ясен хуй размер у них должен быть одинаковый.
Поэтому одно из видео надо заранее привести к размеру другого.
Короче вот тебе говно-пхп код, копайся там и найдешь нужные тебе инструкции ffmpeg:
<?php
namespace ModerateBot\System\Video;
use ModerateBot\System\Config;
use ModerateBot\System\System;
/
Класс для выполнения операций с ватермарками над видео.
@TODO:
- Сделать класс объектно-ориентированным.
- Логи перевести на общий класс логгера.
/
class FFMPEGMaster
{
/
Объединить 2 видео в одно.
Размер второго видео будет подогнан к размеру первого с сохранением aspect_ratio,
путем дополнения второго видео черными рамками по необходимости.
@param string $_videofile_1 Первое видео.
@param string $_videofile_2 Второе видео.
@param string $_video_output Итоговый файл склеенного видео.
@param string $_pad_color Цвет рамок для дополнения второго видео к размеру первого. Default black;
@return string Лог работы.
/
public static function concatenate2Videos ($_videofile_1, $_videofile_2, $_video_output, $_pad_color = 'black')
{
//ultrafast, superfast, veryfast, faster, fast
//medium – default preset
//slow, slower, veryslow
// Speed preset.
// veryfast - приемлимая скорость, хорошее сжатие.
// superfast - наилучшая скорость, сжатие не слишком, но файл и не огромный, как при lossless (ultrafast).
$x264Speed = 'veryfast';
// Засечем время.
$timeStartAll = \microtime (TRUE);
$log = "-----------------------------------------\n";
$log .= "Начинаем процедуру склеивания двух видео.\n";
$log .= "[" . \date ("d.m.Y H:i:s") . "] Start ffmpeg.\n";
// Получим размер исходного видео.
$log .= "Получаем размер текущего видео (" . $_videofile_1 . "): ";
$size0v = self::getVideoSize ($_videofile_1);
$log .= $size0v . "\n";
// Создадим временные файлы.
$tempRescaled = System::generateNewTempFilename ('ffmpeg_rescaled.mp4');
$tempInter1 = System::generateNewTempFilename ('ffmpeg_intermediate1.ts');
$tempInter2 = System::generateNewTempFilename ('ffmpeg_intermediate2.ts');
$log .= "Перекодируем ватермарк для соответствия разрешению исходного видео:\n";
$timeStartRescale = \microtime (TRUE);
\exec ('ffmpeg -y -i ' . $_videofile_2 . ' -strict -2 -filter_complex \
"[0:v]scale=' . $size0v . ':force_original_aspect_ratio=decrease,pad=' . $size0v . ':(ow-iw)/2:(oh-ih)/2:' . $_pad_color . ',setsar=1/1[outv]" \
-map 0:a -c:a aac -ac 2 -b:a 128k -map "[outv]" -c:v libx264 -preset ' . $x264Speed . ' ' . $tempRescaled . ' 2>&1', $outRescale);
$log .= \implode ("\n", $outRescale) . "\n\n";
$timeEndRescale = \microtime (TRUE);
$log .= "Начинаем процедуру склеивания.\n";
$timeStartConcat = \microtime (TRUE);
$log .= "Поменяем видео 1 (исходное) в медиаконтейнер:\n";
\exec ('ffmpeg -i ' . $_videofile_1 . ' -c copy -bsf:v h264_mp4toannexb -f mpegts ' . $tempInter1
. ' -vf "setsar=sar=1/1"'
. ' 2>&1', $outInter1);
$log .= \implode ("\n", $outInter1) . "\n\n";
$log .= "Поменяем видео 2 (ватермарк) в медиаконтейнер:\n";
\exec ('ffmpeg -i ' . $tempRescaled . ' -c copy -bsf:v h264_mp4toannexb -f mpegts '
. $tempInter2 . ' 2>&1', $outInter2);
$log .= \implode ("\n", $outInter2) . "\n\n";
$log .= "Непосредственно склеиваем, выполняем команду concat:\n";
\exec ('ffmpeg -y -i "concat:' . $tempInter1 . '|' . $tempInter2
. '" -c copy -bsf:a aac_adtstoasc -flags global_header '
. $_video_output . ' 2>&1', $outConcat);
$log .= \implode ("\n", $outConcat) . "\n\n";
$timeEndConcat = \microtime (TRUE);
// Удалим временные файлы:
\unlink ($tempRescaled);
\unlink ($tempInter1);
\unlink ($tempInter2);
// Сохраним вывод в лог
$log .= "Rescale time: " . \round (($timeEndRescale - $timeStartRescale), 2) . " s.\n";
$log .= "Concat time: " . \round (($timeEndConcat - $timeStartConcat), 2) . " s.\n";
$log .= "All time: " . \round ((\microtime (TRUE) - $timeStartAll), 2) . " s.\n\n";
\file_put_contents (Config::getAbsolutePath (Config::FILES_LOGS_FFMPEG_LOG, TRUE), $log, \FILE_APPEND);
return $log;
}
public static function getVideoSize (string $_videofile): string
{
$commandGetSize = "ffmpeg -i " . $_videofile . " 2>&1 | grep -oP 'Stream .*, \K[0-9]+x[0-9]+'";
return \str_replace ('x', ':', \exec ($commandGetSize));
}
public static function clearMetadata (string $_videofile)
{
}
}
Тред опа-хуя не читал.
Если стоит задача конкатенации видео, то могу сказать, что тут есть 2 стула:
1. Полный проход по кадрам - ну тут понятно, это дорогостоящая по времени и процу операция.
2. Если оба твоих видео в формате MPEG (mp4) - то можно склеить их, не проходясь по кадрам каждого из них, очень быстро, за пару секунд.
Ясен хуй размер у них должен быть одинаковый.
Поэтому одно из видео надо заранее привести к размеру другого.
Короче вот тебе говно-пхп код, копайся там и найдешь нужные тебе инструкции ffmpeg:
<?php
namespace ModerateBot\System\Video;
use ModerateBot\System\Config;
use ModerateBot\System\System;
/
Класс для выполнения операций с ватермарками над видео.
@TODO:
- Сделать класс объектно-ориентированным.
- Логи перевести на общий класс логгера.
/
class FFMPEGMaster
{
/
Объединить 2 видео в одно.
Размер второго видео будет подогнан к размеру первого с сохранением aspect_ratio,
путем дополнения второго видео черными рамками по необходимости.
@param string $_videofile_1 Первое видео.
@param string $_videofile_2 Второе видео.
@param string $_video_output Итоговый файл склеенного видео.
@param string $_pad_color Цвет рамок для дополнения второго видео к размеру первого. Default black;
@return string Лог работы.
/
public static function concatenate2Videos ($_videofile_1, $_videofile_2, $_video_output, $_pad_color = 'black')
{
//ultrafast, superfast, veryfast, faster, fast
//medium – default preset
//slow, slower, veryslow
// Speed preset.
// veryfast - приемлимая скорость, хорошее сжатие.
// superfast - наилучшая скорость, сжатие не слишком, но файл и не огромный, как при lossless (ultrafast).
$x264Speed = 'veryfast';
// Засечем время.
$timeStartAll = \microtime (TRUE);
$log = "-----------------------------------------\n";
$log .= "Начинаем процедуру склеивания двух видео.\n";
$log .= "[" . \date ("d.m.Y H:i:s") . "] Start ffmpeg.\n";
// Получим размер исходного видео.
$log .= "Получаем размер текущего видео (" . $_videofile_1 . "): ";
$size0v = self::getVideoSize ($_videofile_1);
$log .= $size0v . "\n";
// Создадим временные файлы.
$tempRescaled = System::generateNewTempFilename ('ffmpeg_rescaled.mp4');
$tempInter1 = System::generateNewTempFilename ('ffmpeg_intermediate1.ts');
$tempInter2 = System::generateNewTempFilename ('ffmpeg_intermediate2.ts');
$log .= "Перекодируем ватермарк для соответствия разрешению исходного видео:\n";
$timeStartRescale = \microtime (TRUE);
\exec ('ffmpeg -y -i ' . $_videofile_2 . ' -strict -2 -filter_complex \
"[0:v]scale=' . $size0v . ':force_original_aspect_ratio=decrease,pad=' . $size0v . ':(ow-iw)/2:(oh-ih)/2:' . $_pad_color . ',setsar=1/1[outv]" \
-map 0:a -c:a aac -ac 2 -b:a 128k -map "[outv]" -c:v libx264 -preset ' . $x264Speed . ' ' . $tempRescaled . ' 2>&1', $outRescale);
$log .= \implode ("\n", $outRescale) . "\n\n";
$timeEndRescale = \microtime (TRUE);
$log .= "Начинаем процедуру склеивания.\n";
$timeStartConcat = \microtime (TRUE);
$log .= "Поменяем видео 1 (исходное) в медиаконтейнер:\n";
\exec ('ffmpeg -i ' . $_videofile_1 . ' -c copy -bsf:v h264_mp4toannexb -f mpegts ' . $tempInter1
. ' -vf "setsar=sar=1/1"'
. ' 2>&1', $outInter1);
$log .= \implode ("\n", $outInter1) . "\n\n";
$log .= "Поменяем видео 2 (ватермарк) в медиаконтейнер:\n";
\exec ('ffmpeg -i ' . $tempRescaled . ' -c copy -bsf:v h264_mp4toannexb -f mpegts '
. $tempInter2 . ' 2>&1', $outInter2);
$log .= \implode ("\n", $outInter2) . "\n\n";
$log .= "Непосредственно склеиваем, выполняем команду concat:\n";
\exec ('ffmpeg -y -i "concat:' . $tempInter1 . '|' . $tempInter2
. '" -c copy -bsf:a aac_adtstoasc -flags global_header '
. $_video_output . ' 2>&1', $outConcat);
$log .= \implode ("\n", $outConcat) . "\n\n";
$timeEndConcat = \microtime (TRUE);
// Удалим временные файлы:
\unlink ($tempRescaled);
\unlink ($tempInter1);
\unlink ($tempInter2);
// Сохраним вывод в лог
$log .= "Rescale time: " . \round (($timeEndRescale - $timeStartRescale), 2) . " s.\n";
$log .= "Concat time: " . \round (($timeEndConcat - $timeStartConcat), 2) . " s.\n";
$log .= "All time: " . \round ((\microtime (TRUE) - $timeStartAll), 2) . " s.\n\n";
\file_put_contents (Config::getAbsolutePath (Config::FILES_LOGS_FFMPEG_LOG, TRUE), $log, \FILE_APPEND);
return $log;
}
public static function getVideoSize (string $_videofile): string
{
$commandGetSize = "ffmpeg -i " . $_videofile . " 2>&1 | grep -oP 'Stream .*, \K[0-9]+x[0-9]+'";
return \str_replace ('x', ':', \exec ($commandGetSize));
}
public static function clearMetadata (string $_videofile)
{
}
}
Не обязательно. У ffmpeg ещё в 0.6 были средства синхронизации. Сейчас и ошибки, наверное поправили. Достаточно будет просто попросить ffmpeg не сохранять оригинальный поток звука, а пережать его.
Но вообще, это всё какбэ неправильный путь, потому, что резать видео с компенсацией движения (а это почти всё видео сегодня) нужно по границам GOP, или если нет двунаправленного предсказания движения (M=1), то в остатке должен быть I-кадр и нужное число P-кадров.
Чтобы с этим всем не ебаться, рекомендую пережимать. В интернете всё равно, почти всем плевать на качество виде, если оно чуть лучше, чем говно. А под раздачу если монтировать, то уже точно с перекодированием, хорошим источником и нелинейным редактором, а не только с ffmpeg-ом наперевес.
Алсо, я так понимаю, что -c copy распространяется и на звук и на видео. Здесь можно сказать что-нибудь вроде -c:v copy .
640x270, 118:27
ffmpeg -ss 00:00:03.766 -to 00:03:27.697 -i "E:\Ant.Man.and.the.Wasp.2018.D.BDRip.1080p.mkv" -map 0:0 -map 0:2 -vf scale=640:270 -c:v libx264 -preset slow -tune film -crf 23 -c:a aac -b:a 96k out.mp4
Дороги оставило нормально, но в файле были еще и главы, а бывает и прочая ебень, вроде субтитров, постеров, которые ffmpeg оставил в выходном файле. Как их исключать?
>>399233
Звук кодируй, поможет.
Например:
ff -ss 00:01:12 -to 00:01:30 -i "input.mp4" -c:v copy -c:a aac -b:a 96k output.mp4
>>387174
-filter:a "volume=1.5"
1.5 = 150%
А, мне вот эта команда понадобилась бы. Сам когда гуглил нагуглил другую команду, которая удаляет данные, но не поля для них.
Как из фрагмента видео извлечь только опорные кадры? Как вообще узнать, какие из них опорные?
Вот тут >>2402228 описана любопытная проблема.
Сначала ссылка — https://trac.ffmpeg.org/wiki/Capture/Desktop
Задача — программно захватить с синхронизацией (и строго постоянной частотой кадров) видео с экрана и выводимый звук под актуальной версией Windows.
Метод в первом приближении:
ffmpeg -f dshow -i video="UScreenCapture" -f dshow -i audio="Microphone" output.mkv
Вопрос: Будут ли оба фильтра-источника в одном и том же графе DirectShow, будет ли синхронизация?
Возможный другой вариант решения — поставить https://github.com/rdp/screen-capture-recorder-to-video-windows-free
По описанию проекта это в точности та программа, которая удовлетворяет требованиям, изложенным в начале сообщения. С ней метод выглядит примерно так:
ffmpeg -f dshow -i audio="virtual-audio-capturer":video="screen-capture-recorder" yo.mp4
Кто-нибудь пробовал такое? Какие впечатления? Что там настраивается, какие подводные камни?
Бамп.
1920x1080, 0:30
1. Как захватить звук, который слышно (linux, pulseaudio)?
1) узнать название мониторного источника:
$ pactl list | grep monitor
у меня это alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
2) захватить:
$ ffmpeg -f pulse -ac 2 -i alsa_output.pci-0000_00_1b.0.analog-stereo.monitor -c:a pcm_s16le -f matroska test.mkv
2. Как захватить видео, которое видно (linux, x11)?
1) Показать переменную, хранящую имя текущего дисплея:
$ echo $DISPLAY
у меня это :0.0
2) захватить
$ ffmpeg -r 30 -f x11grab -s 1920x1080 -i :0.0+0,0 -vsync 1 -pix_fmt yuv444p -format yuv444p -c:v libx264 -threads 4 -preset ultrafast -crf 0 -f matroska test.mkv
3. Как захватить и слышимый звук и изображение на экране (linux, pulseaudio, x11)?
$ ffmpeg -r 30 -f x11grab -s 1920x1080 -i :0.0+0,0 -vsync 1 -f pulse -ac 2 -i alsa_output.pci-0000_00_1b.0.analog-stereo.monitor -pix_fmt yuv444p -format yuv444p -c:v libx264 -threads 4 -preset ultrafast -crf 0 -c:a pcm_s16le -f matroska test.mkv
1920x1080, 0:30
Вот это должно работать в лисице...
$ ffmpeg -i test.mkv -ss 4 -t 30 -pix_fmt yuv420p -c:v libvpx-vp9 -b:v 0 -threads 4 -crf 18 -c:a vorbis compressed.webm
О! В Фуррифоксе тоже играется. Теперь всегда буду делать H.264+AAC@MP4. Интересно, а на планшете с ARM-ом тоже пойдёт? А на смарт-ТВ. Надо бы проверить...
Понял, спасибо.
1024x434, 2:03
По моему опыту лучшее разрешение для просмотра на двощах это 1024:-2 - не сильно мелко и не сильно крупно, средняя вебмка ужимается в таком разрешении очень хорошо.
>Я лучше на jvet поставлю
VVC что ли? https://jvet.hhi.fraunhofer.de
Прикольная фигня. Обещают быть лучше HEVC и AV1.
Даже энкодер уже есть: https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM
Ну конкуренция явно всем на пользу будет.
К слову, на x265 ругаются точно так же, что он "мылит", так что это не проблема исключительно libvpx/libaom.
Если нормальные чуваки сядут AV1 энкодер писать (как с Eve), то отлично всё получится. И рейт-контроль, и качество картинки. И сжимать при этом будет лучше прошлого поколения.
Другое дело, что мозилла rav1e скорее всего WebRTC будет кодировать (ну и чтобы Rust попиарить), а там особо задроченный энкодер не нужон.
Интересно, когда уже начнут x266 писать. Наверно не скоро, они с x265 до сих пор не управились.
> Интересно, когда уже начнут x266 писать.
Как только стандарт выйдет.
> они с x265 до сих пор не управились.
А чего ты ожидаешь-то? Каждое следующее поколение увеличивает вычислительные затраты и коэффициент сжатия. Но один и другой прирост сильно расходятся. Уже для H.265|VP9|AV1 есть толковое только одно оправдание — впихнуть в старые каналы связи картинку нового разрешения. Вот уже на H.265, на мой взгляд наметилась чёткая тенденция упадка: вычислительные мощности массовых процессоров в расчёте на ядро уже как несколько лет растут еле заметным темпом (т. е. предел не достигнут, но и рывков больше не будет), ради впихивания 4к-видео в старые каналы связи люди уже смирились с характерным мыльцем. Перспективы сильно так себе я бы сказал. Вот как я это вижу, особых надежд нет. Скорее всего, в быту H.264 high profile надолго ещё. А железные кодеры в H.265 будут, но их эффективность сжатия будет уступать этому самому H.264 high profile в реализации libx264 при сравнимых вычислительных затратах.
> Если нормальные чуваки сядут AV1 энкодер писать (как с Eve), то отлично всё получится. И рейт-контроль, и качество картинки. И сжимать при этом будет лучше прошлого поколения.
Крутой манямирок, будешь там жить?
>>404185
> Перспективы сильно так себе я бы сказал.
Именно.
> в быту H.264 high profile надолго ещё
Ну сейчас всем миром поддержку из браузеров удалят и будем смотреть на мыльных шакалов vpx рейтконтроля.
> Ну сейчас всем миром поддержку из браузеров удалят
Было бы забавно. Но это маловеротно. Скорее всего, будет удалено также, как Internet Explorer из Windows. Хотя, может быть и говновариант — будут удалены как PostScript и PDF из Windows, но это будет что-то совсем удивительное.
> Было бы забавно
Настолько же забавно как удаление поддержки опуса из лисицы в контейнере мп4 или ещё забавнее?
https://bugzilla.mozilla.org/show_bug.cgi?id=1482841
И AV1 в MP4 тоже работает. Никто не любит WebM.
О, раздуплились таки. Малаца.
>Ну сейчас всем миром поддержку из браузеров удалят и будем смотреть на мыльных шакалов vpx рейтконтроля.
iOS решает, слишком большой кусок рынка, чтобы х264 удалять.
> подскажи команду для склейки множества видео клипов в каталоге по порядку обусловленному датой видео, начиная с самого раннего
Такой команды нет. Но задача решается с помощью командной строки, там в цикле выводишь в нужном порядке наименования, записываешь их в файл, по файлу делаешь конкат. Может кто захочет это все расписывать тебе поможет, но насколько я знаю в гугле все эти вопросы освещены.
>>375895
Таки проблема была с сертификатами. Решилось удалением ветки KEY_CURRENT_USER\Software\Microsoft\SystemCertificates. До этого удалял сертификаты через certmgr.msc и ничего не помогло.
Теперь в новой версии проблема с ffplay - не выставляется соотношение сторон при использовании scale для histogram, так же пробовал менять force_original_aspect_ratio и ничего не помогло. Приходится делать через пердолинг: ffmpeg -i INPUT -vf scale=1280:720 -aspect 16:9 -c:v rawvideo -f nut -|ffplay -
Есть ли в ffplay опция указания соотношения сторон? -aspect не работет.
Если что, то раньше я для мониторинга яркости для yuv420p делал так:
ffplay -i "bw.jpg" -vf eq,format=yuv420p,histogram=720:40:1:0:1,scale=1280:720,drawbox=w=in_w(235-16)/255+25:h=693:x=16/255in_w-12:y=0:color=red@0.5:thickness=10
а теперь приходится так:
ffmpeg -i bw-h.jpg -vf eq,format=yuv420p,histogram=720:40:1:0:1,scale=1280:720,drawbox=w=in_w(235-16)/255+25:h=693:x=16/255in_w-12:y=0:color=red@0.5:thickness=10 -aspect 16:9 -c:a pcm_s16le -c:v rawvideo -f nut -|ffplay -
и теперь из-за pipe не работает перемотка.
Спасибо.
Собственно можно ли сделать что-то подобное как пикрил: одновременно японские и русские/английские сабы?
То есть предположим у меня есть 2 файла с сабами, и видео. Возможно ли совместить их так с помощью ffmpeg? Или тут скорее сначала сами сабы нужно как-то отредактировать и смерджить, а потом уже просто вшить в видео?
Короче если кто делал подобное, подскажите как лучше это сделать.
Пока пойду документацию по ffmpeg курить, а то пока даже просто вшить как то криво получается.
> То есть предположим у меня есть 2 файла с сабами, и видео. Возможно ли совместить их так с помощью ffmpeg?
Зачем? Если можно просто в плеере врубить два субтитра (оба снизу, или снизу и сверху) и смотреть? PotPlayer например.
Или ты не на компе собрался смотреть?
> Или ты не на компе собрался смотреть?
this.
Собираюсь смотреть на телевизоре. А он, насколько я понял, может показывать только одни субтитры, и только вшитые в видео.
вбиваю
ffmpeg -i preview.png -c:v vp9 -pix_fmt +yuv420p preview.webm
Выдает
The filters 'Parsed_null_0' and 'format' do not have a common format and automatic conversion is disabled.
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0
Conversion failed!
В чем ошибся
У меня строка конкретно
ffmpeg -i d:\µ's_-_Bokura_no_LIVE_Kimi_to_no_LIFE.png -c:v vp9 -pix_fmt +yuv420p d:\µ's_-_Bokura_no_LIVE_Kimi_to_no_LIFE.webm
теперь пишет
[concat @ 0000000000768000] Unsafe file name 'd:\s_-_Bokura_no_LIVE_Kimi_to_no_LIFE_preview.webm'
d:\video.txt: Operation not permitted
Лучше положи файлы в одну папку, а в files.txt пропиши
file "file1"
file "file2"
Какой минимальный\оптимальный битрейт можно выставить для 720п@30fps h265 (HEVC) видео?
Нужна максимальная компрессия с минимальными потерями.
Понятное дело, что зависит от видео, но назовите хотя бы какое то усреднённое значение.
Ну начни с crf 32 и повышай.
Ничем. Но в Вики написано, что лучше использовать видеофильтр -vf scale.
-vf "subtitles=1.srt,subtitles=2.srt:force_style='Alignment=6'"
> В ffmpeg можно как-нибудь задействовать 100% проца/карты при кодировании?
И да. И нет. Все свободные вычислительные ресурсы оно и так возьмёт, но ffmpeg работает не одна — попимо неё ещё целая операционная система шевелится, бурно реагируя на тонну запросов от той же ffmpeg. А ещё есть любимая бочка Либиха.
Ты что спросить-то хотел? А то вопрос ты задал в очень некорректной форме.
Как максимально быстро конвертировать, задействовав все мощности? Или еще от кодека зависит? Проц только на 25% грузит.
> Как максимально быстро конвертировать
ffmpeg -i input.avi -c:v libx264 -preset ultrafast -crf 0 output.mp4
> задействовав все мощности?
Никак. Нет таких вычислительных мощностей, чтобы по ним любую задачу можно было равномерно размазать. Они мощности вычислительные, сука, разнородные.
> Или еще от кодека зависит?
И от настроек кодека тоже.
> Проц только на 25% грузит.
Не факт, что на все доступные вычислительные ядра процесс распараллелен. И бочка Либиха тоже.
-Threads число ядер потоков хз чего, но оно вроде не со всеми кодеками работает.
1. Кодер видео с компенсацией движения и потерей данных решает оптимизационную задачу по поиску компактного представления видеоряда относительно определённых его спецификацией параметризованных примитивов.
2. Т. к. анализирует он картинку, на которой, в основном изображены зрительно цельное изображение и последовательное действие, охватывающее, как правило, всё изображение, то и близость к глобальному минимуму по определённому критерию вероятнее достичь при анализе всего изображения в одном итерационном потоке вычислений.
3. Характерным для всех реальных систем и физически корректных моделей вообще является наличие большого числа ограничений. Например, для большинства оптимизационных задач и методов их решения характерно асимптотическое приближение к оптимуму с падающим с каждой следующей итерацией возвратном (от итерации к итерации сначала приближение к локальному минимуму идёт быстро, затем всё медленнее и медленнее).
4. Из свойства, указанного в п.3 следует, что деградация критерия минимума для субоптимальных решений, весьма вероятно, будет иметь обратную тенденцию. Т. е. за возможность решить оптимизационную задачу в две, три, четыре и более равноправных параллельных и почти независимых частей, вполне возможно заплатить немного худшим приближением к локальному минимуму.
5. Из п.4 следует положительный ответ на вопрос в >>420813. Да, с ростом числа потоков опережающим темпом ухудшается соотношение «искажения — ширина потока». Т. о. для достижения тех же качественных показателей придётся увеличить ширину потока, или при той же (примерно, разумеется) ширине потока мириться с небольшим снижением качественных показателей.
6. Ответ на вопрос в >>420812. Звучит так. Оптимизационная задача может быть решена в несколько почти независимых параллельных вычислительных потоков, исполняемых на отдельных физических вычислительных устройствах. В стандарте H.264 предусмотрены специальные примитивы для двух вариантов распараллеливания, допускающих как пространственное разделение оптимизационной задачи, так и разделение лишь прямых вычислений с постоянной синхронизацией параллельного опережающего поиска движения и синхронной для всех потоков обратной связи по критерию минимума. В первом случае, обеспечивается меньшее время простоя вычислительных ядер из-за меньшего числа синхронизаций вычислений, во втором существенно улучшается приближение к локальному минимуму.
>>420825
Школьный диалект это.
1. Кодер видео с компенсацией движения и потерей данных решает оптимизационную задачу по поиску компактного представления видеоряда относительно определённых его спецификацией параметризованных примитивов.
2. Т. к. анализирует он картинку, на которой, в основном изображены зрительно цельное изображение и последовательное действие, охватывающее, как правило, всё изображение, то и близость к глобальному минимуму по определённому критерию вероятнее достичь при анализе всего изображения в одном итерационном потоке вычислений.
3. Характерным для всех реальных систем и физически корректных моделей вообще является наличие большого числа ограничений. Например, для большинства оптимизационных задач и методов их решения характерно асимптотическое приближение к оптимуму с падающим с каждой следующей итерацией возвратном (от итерации к итерации сначала приближение к локальному минимуму идёт быстро, затем всё медленнее и медленнее).
4. Из свойства, указанного в п.3 следует, что деградация критерия минимума для субоптимальных решений, весьма вероятно, будет иметь обратную тенденцию. Т. е. за возможность решить оптимизационную задачу в две, три, четыре и более равноправных параллельных и почти независимых частей, вполне возможно заплатить немного худшим приближением к локальному минимуму.
5. Из п.4 следует положительный ответ на вопрос в >>420813. Да, с ростом числа потоков опережающим темпом ухудшается соотношение «искажения — ширина потока». Т. о. для достижения тех же качественных показателей придётся увеличить ширину потока, или при той же (примерно, разумеется) ширине потока мириться с небольшим снижением качественных показателей.
6. Ответ на вопрос в >>420812. Звучит так. Оптимизационная задача может быть решена в несколько почти независимых параллельных вычислительных потоков, исполняемых на отдельных физических вычислительных устройствах. В стандарте H.264 предусмотрены специальные примитивы для двух вариантов распараллеливания, допускающих как пространственное разделение оптимизационной задачи, так и разделение лишь прямых вычислений с постоянной синхронизацией параллельного опережающего поиска движения и синхронной для всех потоков обратной связи по критерию минимума. В первом случае, обеспечивается меньшее время простоя вычислительных ядер из-за меньшего числа синхронизаций вычислений, во втором существенно улучшается приближение к локальному минимуму.
>>420825
Школьный диалект это.
И ещё вопрос, что такое -profile и чем -profile 0 отличается от -profile 3?
> А что такое vpxenc.exe и как его скомпилировать на Windows?
А чем встроенная и уже слинкованная со сборкой ffmpeg от zeranoe библиотека libvpx не устраивает?
> И ещё вопрос, что такое -profile и чем -profile 0 отличается от -profile 3?
https://en.wikipedia.org/wiki/VP9#Profiles
profile 3 = profile 0 + дополнительные цветовые прореживания + 10...12 бит/канал.
Если кодируешь в vp9, то помимо количества потоков надо добавить еще -row-mt 1
265 интереснее распараллелен, threads определяет количество одновременно обрабатываемых фреймов, по 1 фрейму на thread. В итоге размер не растёт или растёт не сильно, у меня нет достаточного количества ядер, чтобы утвержать на верняка, а метрики остаются на том же уровне. На 4 ядрах 2 треда, 2 пула или же 4 треда 0 пулов не дают прироста размера относительно 1 треда 0 пулов и падение по метрикам измеряется сотыми. Но я, конечно, полномасштабных исследований не проводил, просто для себя отметил такой результат, когда смотрел как опции пулов влияют на качество.
>>420812
С vp оно ещё и упирается в ширину видео, если не будет тайлов, то не будет и тредов.
Хуй знает, у меня работает.
В H.264 есть только слайсы. x264 дополнительно реализует frame-level multithreading, для которого специальной поддержки в формате не нужно.
В VP8 есть партишены, которые примерно как слайсы.
В VP9 есть тайлы (только горизонтальные распараллеливаются), каждая колонка минимум 256 пикселей. И не так давно добавили row-mt, который работает вроде как WPP из H.265.
В AV1 есть тайлы (распараллеливаются и горизонтальные, и вертикальные, вроде с меньшим ограничиям размера) и row-mt.
В H.265 есть слайсы, тайлы и WPP (распараллеливание по строчкам CTU). В x265 есть frame-level multithreading, как у x264.
У каждого способа своё влияние на эффективность кодирования (обычно ухудшение на 2-10%) и эффективность распараллеливания.
> вроде/наверное/может быть и примерно почувствовал процентное ухудшение я
> но хуйню пишете вы
> Что за хуйню вы тут написали.
Узбагойся! Написанное тобой не противоречит написанному в >>420840 и >>421137, только уточняет, дополняет, и исправляет неточности.
> Распаралелливание зависит от спецификации кодека.
Обязательно зависит, и в >>420840 и >>421137 об этом тоже сказано.
> В H.264 есть только слайсы. x264 дополнительно реализует frame-level multithreading, для которого специальной поддержки в формате не нужно.
Совершенно верно.
> обычно ухудшение на 2-10%
Проценты чего, няша???
>>422275
Зря ты. Обзорная часть у него норм.
>>421137
> 265 интереснее распараллелен
libx265 лучше распараллелена или стандарт H.265 предлагает для параллельных вычислений больше инструментов?
И то и другое верно. Но тут есть нюанас. Кодеры H.265, если рассчитывать на большие сжатие, чем у H.264 при прочих равных, потребляют вычислительные ресурсы в несравнимо большем количестве. Как не в себя прямо. Лучшая отработка многопоточных вычислений дело не спасает от слова совсем. Есть работы >>2393880, изучающие эффективность массового параллелизма, но там всё ещё не тах хорошо, как хочется. Думается, что реальный перспективный потолок применения для H.265 — это пропихивание 4К-видео в те же (или слегка расширенные, ну, до 20-40 Мбит/с) каналы связи, в каких раньше были MPEG-2, MPEG-4 ASP и AVC, причём ценой любых вычислительных нагрузок и небольшого ухудшения зрительного качества картинки.
>>422366
> А какой наименее требовательный к "железу", кодек?
Неправильный вопрос. Попробуй ещё!
Ты прямо спроси, чего ты хотел добиться! Нахера ты корчишь из себя умника, которым не являешься?
> Вот, например, VP8 можно запустить на Sega
А H.264 main profile почти на каждом смартфоне, и что?
> Что за хуйню вы тут написали.
Узбагойся! Написанное тобой не противоречит написанному в >>420840 и >>421137, только уточняет, дополняет, и исправляет неточности.
> Распаралелливание зависит от спецификации кодека.
Обязательно зависит, и в >>420840 и >>421137 об этом тоже сказано.
> В H.264 есть только слайсы. x264 дополнительно реализует frame-level multithreading, для которого специальной поддержки в формате не нужно.
Совершенно верно.
> обычно ухудшение на 2-10%
Проценты чего, няша???
>>422275
Зря ты. Обзорная часть у него норм.
>>421137
> 265 интереснее распараллелен
libx265 лучше распараллелена или стандарт H.265 предлагает для параллельных вычислений больше инструментов?
И то и другое верно. Но тут есть нюанас. Кодеры H.265, если рассчитывать на большие сжатие, чем у H.264 при прочих равных, потребляют вычислительные ресурсы в несравнимо большем количестве. Как не в себя прямо. Лучшая отработка многопоточных вычислений дело не спасает от слова совсем. Есть работы >>2393880, изучающие эффективность массового параллелизма, но там всё ещё не тах хорошо, как хочется. Думается, что реальный перспективный потолок применения для H.265 — это пропихивание 4К-видео в те же (или слегка расширенные, ну, до 20-40 Мбит/с) каналы связи, в каких раньше были MPEG-2, MPEG-4 ASP и AVC, причём ценой любых вычислительных нагрузок и небольшого ухудшения зрительного качества картинки.
>>422366
> А какой наименее требовательный к "железу", кодек?
Неправильный вопрос. Попробуй ещё!
Ты прямо спроси, чего ты хотел добиться! Нахера ты корчишь из себя умника, которым не являешься?
> Вот, например, VP8 можно запустить на Sega
А H.264 main profile почти на каждом смартфоне, и что?
Из тех, что сейчас используются, MPEG-2. (Не считая всяких MJPEG, rawvideo, Y4M, ProRes и т.д.)
>>422387
>Проценты чего, няша???
Увеличение размера битстрима при том же качестве. Т.е. непосредствено оверхэд от кодинг тула.
>Думается, что реальный перспективный потолок применения для H.265 — это пропихивание 4К-видео в те же (или слегка расширенные, ну, до 20-40 Мбит/с) каналы связи
Не только. Амазон в него весь свой каталог пережал например, включая SD. Удобно всяким индусам на мобилки вещать.
Вот это глянь https://www.youtube.com/watch?v=vgE8-4rcXl0
> Ты прямо спроси, чего ты хотел добиться!
Хочу, чтобы VP8 сжимал также качественно, как и VP9.
> Из тех, что сейчас используются, MPEG-2.
Есть ещё H.261, но у него кодеров раз-два, и обчёлся.
> битстрима
> оверхэд
> кодинг
> тула
Грязища-то какая. Ширина потока, избыточность, кодирование, инструмент.
> Вот это глянь
Я бы предпочёл текст с картинками и графиками. Очень плохо воспринимаю фактический материал на слух. Нет ли такого? Ну, или в двух словах расскажи, о чём он там, а то у него есть «roughly twice as efficient as H.264», что моно заявлять только как «ну, очень-очень грубую прикидку». Хотя кривая хайпа порадовала, да. Опять же, он по какой-то причине заявляет, что правый конец всенепременно должен выходить на плато, а фундаментальные законы физики подсказывают мне, что справа должен быть достигнут второй пик, а потом ожидания от технологии должна уходить в дно. Впрочем, эти «ожидания» — такая мутная и лженаучная херня, что не удивлюсь, что кривую можно продолжить как угодно в зависимости от содержательной части «ожиданий».
Фантастику на другой доске обсуждают. Религию тоже.
А реальное техническое средство не работает так, как нам хочется. Оно работает как может и, если речь про программу, то у неё есть как минимум три характеристики работы:
- эффективность по предписанной функции (в твоём случае — наибольший коэффициент сжатия при устраивающем тебя качестве изображения);
- эффективность по потребляемым ресурсам (в твоём случае — по вычислительным ресурсам. т.е. пропускной способности каналов ввода-вывода, оперативной памяти и процессорному времени, причём вычислительным ресурсам как на стороне кодера, так и на стороне декодера);
- область применимости (в твоём случае — вероятность наличия декодера на гипотетическом целевом устройстве, т. е. на железке, на которой предполагается воспроизведение).
> Не совсем, я думал libx265 лучше распараллелена или стандарт H.265
Я не про лучше/хуже, я не думал, что х264 реализует frame-level multithreading, потому что по наблюдению метрик и размера файлов я сделал вывод, что frame-level multithreading на размер не сильно сказывается при ~том же уровне качества энкода, но теперь думаю, что выборка просто недостаточна. У х264 прирост в размере существенный.
>Есть ещё H.261
Он не используется.
>Ну, или в двух словах расскажи, о чём он там
На 12-ой минуте рассказывает, что амазон всё сэнкодил в HEVC.
>>422438
Наоборот, frame-level multithreading в x265 работает хуже, чем в x264, т.к. кодек сложнее. Вот здесь объяснение:
https://x265.readthedocs.io/en/default/threading.html#frame-threading
У WPP вроде как меньше оверхэда будет.
> x265 работает хуже, чем в x264
Не хуже, а медленнее, ему нужно дольше ждать обработки соседних фреймов. Хуже работает wpp с frame-level multithreading, чем без него, что очевидно.
> У WPP вроде как меньше оверхэда будет
Не нашел этого в статье.
У WPP:
>The compression loss from WPP has been found to be less than 1% in most of our tests.
У frame parallelism:
>When frame threading is disabled, the entirety of all reference frames are always fully available (by definition) and thus the available pixel area is not restricted at all, and this can sometimes improve compression efficiency.
Хотя так сложно сказать, что лучше, надо тестить. Наверно на doom9 где-нибудь есть.
Да, я читал, про wpp, потому его и использую совместно с frame parallelism, в использовании только wpp мне не удалось загрузить систему что ли, вместе они нормально отрабатывают.
> на doom9 где-нибудь есть
Они там больше стараются найти приемлемые настройки, чтобы по качеству догнать x264, с переменным успехом, хотя в профильных ветках 265 я и не ходил никогда, с такой скоростью я его использовать буду ещё не скоро.
x265 херня потому что, его проприетарные энкодеры уделывают и по качеству, и по скорости. MulticoreWare не смогло в грамотный менеджмент.
Ну у не нашлось очередного DarkShikari очередной Fiona, чтобы задрачивать код с утра до ночи.
http://www.compression.ru/video/codec_comparison/hevc_2018/#Video_Codecs
HW265, Tencent Shannon Encoder, Intel MFX (SW), Kingsoft HEVC Encoder
> А потом когда пойдёт запрос из плейлиста "на лету" обращаться к файлу в интернете по этим кейфреймам. Такая многоходовочка!
Ты только что HLS
двачую вопрос.
Так они же поддерживают аппаратное ускорение через quick sync
я нихуя не смыслю в этом, юзаю crf 10-40 разницы никакой в размере файла, с битрейтом не разбираюсь, выходит шакальная поебота на 500кб, хотя конвертит он 3 минуты, пиздец просто
Что-то я не очень понял.
Этих форматов куча, 3\4 из них, насколько я понял, проприетарные и просто не работают, а чтобы использовать оставшиеся нужно учитывать в каком формате источник, так как не все форматы совместимы между собой. Ну и кроме того, у каждого формата фиксированное количество битов на пиксель и меньше 8 я и не видел.
Мне бы просто уменьшить количество цветов в видео. Например, как в гифках урезается палитра цветов с 256 до 128/64 и т.д.
Вырезаю небольшой кусок видео несколько секунд, не больше 10.
Смотрю в vlc вроде всё нормально ну или бывают небольшие артефакты.
Загружаю в тред, смотрю, а там в начале задержка на 1-1.5 сек.
Как это фиксить?
нужно просто наложить статичный закрашенный квадрат на видео.
как это сделать так, чтобы быстрее всего энкодилось и качество не пострадало?
ffmpeg -i in.mp4 -vf palettegen=max_colors=64 -frames:v 1 -y palette.png
ffmpeg -i in.mp4 -i palette.png -lavfi paletteuse=dither=none -pix_fmt yuv420p -y out.mp4
От души, брат. Спасибо, брат.
бамп
Делал так:
ffmpeg -loop 1 -y -i screenshot.png -i Nuage\ -\ Colours.mp3 -shortest -acodec libvorbis -vcodec libvpx 2.webm
Плак плак.
Анон научи.
Ладно, хуй с вами. Сам научился.
ffmpeg -loop 1 -y -i screenshot.png -vcodec libvpx-vp9 -i Nuage\ -\ Colours.mp3 -shortest -acodec libvorbis -b:v 640k -bufsize 640k -r 1 -pix_fmt yuv420p 2.webm
бамп
О, прикольно, я думал нужна битность, а можно и по количеству цветов делать палитры? Надо будет потестеровать.
прозрачность,похуй сам сделол
Любители ffmpeg'а помогите sh скриптиком.
Необходимо все файлики в папке проверить на наличие отличных от заданных кодеков и заменить перекодировать их в необходимые, а потом удалить исходный файл.
Ну или проще как привести все файлы в хранилище кинца к нужному формату кодек видео + кодек аудио
Попытка
ffmpeg -ss 7:01 -i video.mkv -t 22 -vf subtitles=video.mkv out.avi
потерпела крах.
Как правильно?
Есть три видеоролика, снятые на телефон. Проблема в том, что видео в нем воспроизводится ускоренно, а звук идёт правильно. Например, ролик 2 минуты, видео проигрывается за 30 секунд и останавливается, а звук продолжает работать. В какой программе можно это исправить? То есть надо растянуть видео до времени проигрывания звука. И как это сделать, объясните, пожалуйста, подробней, для ньюфага видеомонтажа.
В вегасе можно точно. Мануалов для ньюфага в гугле предостаточно, не ленись.
Господь подарил им FFMPEG, чтобы они были как боги! А они вебмки для двача им режут :(
1. Как записывать многострочную метадату в контейнеры? В документации сказано https://www.ffmpeg.org/ffmpeg-all.html#toc-Metadata-1 , что просто в прицепляемом файле перенос строки эскейпается "\" и всё. Однако на деле подцепляется только 1я строка.
2. Что делают опции bufsize и rc_init_occupancy для libvpx? В документации https://www.webmproject.org/docs/encoder-parameters/ сказано, что они должны на что-то влиять при кодировании в CQ режиме, но на деле оба параметра ни на что не влияют.
3. Аналогично, undershoot-pct и overshoot-pct - я так и не понял, с какой стороны его прикручивать.
4. На что влияет параметр -q из Main options? Даже на голом ffmpeg -i IN -an -c:v libvpx -q X OUT ничего не происходит.
5. Как работает -crf режим? Гонял его в 1 и в 2 прохода - ничего похожего на постоянное качество он не выдаёт. На crf 1 и crf 60 картинки очень похожие.
>qmin=qmax это CQP.
Подожди, разве там и там не один и тот же квантайзер? Где можно почитать про это?
CQP это постоянный QP для фреймов
CRF может варьироваться
https://slhck.info/video/2017/02/24/crf-guide.html
>Господь подарил им FFMPEG, чтобы они были как боги! А они вебмки для двача им режут :(
Хули ещё делать в этой жизни?
Читаю сейчас, спасибо. Параллельно экспериментирую. Я правильно понимаю, что CRF хорош для динамических сцен, а CQP для роликов, где много статики? Пробовал сжимать на CRF просто длинные последовательности статичных картинок и там на переключениях жуткое месиво получается.
Охуенный сайтец, кстати. Нашёл у него ещё кучу статей по кодированию видео именно в разрезе ффмпега. Надо обязательно будет кинуть в шапку при перекате.
>4/5. -b:v 0 -crf X чтобы включить Q режим
>будет работать только при двух проходах
Погоди. Но вот тут он пишет
https://slhck.info/video/2017/03/01/rate-control.html
что оно прекрасно работает и на одном проходе. Кто прав?
>Хули ещё делать в этой жизни?
Обычно после такого вопроса выпиливаются вскоре
А ffmpeg постигать не каждому дано, это да
Да нет, для меня вопрос как бы самый насущный. Я вот пилю всякое говно, а потом форсю его в вебм-тредах. С каждым разом мой пак разрастается и я чувствую себя молодцом, что у меня такой багаж. Когда моё говно репостят где-нибудь без меня, вообще до потолка прыгаю.
Мне всё очень нравится, но я не исключаю, что есть ещё что-то более интересное в жизни, вот и спрашиваю.
>А ffmpeg постигать не каждому дано, это да
Да так вообще с кодированием видео в целом. У каждого кодека дохуильон параметров и нигде про них нихуя не написано. Тут хоть ты в консольке эти параметры набивай, хоть в менюшках накликивай. До сих пор помню как лет 15 назад пиздюком пытался вникать в рипанье дивидюков с помощью виртуал дуба, осиливал различия между 3.11 и 4.12 дивыксом, потом ссал кипятком от того, что в H.264 наконец побороли ебучие квадратики, сейчас вкуриваю различия между I/P/B кадрами.
Понятно, что всегда в любой программе можно указать тупо битрейт и ткнуть "Convert", но мне всегда было интересно, что же на самом деле творит внутри эта адская машина.
Сейчас вот тоже начал пердолинг с ффмпегом тупо с
>ffmpeg -i 1.mp4 1.webm ЕНТЕР
а теперь у меня на альттабе открыт Notepad++, где у меня в одной вкладке открыт пресет для вебмок, куда я кидаю отлаженные настройки кодека, а во второй - батник с тестовым скриптом, который за 1 прогон сразу лепит несколько вариантов файла с разными настройками кодирования и тут же нарезает пачку скринов с характерных ключевых точек в видеоряде, чтобы мне было проще сравнивать результаты. Т.ч. параллельно документации ффмпега пришлось ещё расширить свои знания по написанию этих самых батников.
Я уже молчу про количество вкладок с документацией официального ффмпега, вики, статей по кодированию и ответов на стаковерфло.
Ух бля, короче.
> мне всегда было интересно, что же на самом деле творит внутри эта адская машина.
Ничего особенного: представление отсчетов, передискретизация, преобразования (Фурье/ДКП, Карунена-Лоэва, вейвлет) компенсация движения, энтропийное кодирование, решение оптимизационной задачи.
>Фурье/ДКП
Эх, помню, как в универе охуел, когда там про это всё объяснили и я своими глазами увидел, как все этим матрицы рисуются... Жаль только пробежались вскользь мимо этого, зато блять всякое ОБЖ преподавали целыми семестрами.
>libvpx-vp9 can save about 20–50% bitrate compared to libx264 (the default H.264 encoder), while retaining the same visual quality.
http://trac.ffmpeg.org/wiki/Encode/VP9
Так почему на рутрекере до сих пор видосы в х265 раздают в 2018?
>1. Как записывать многострочную метадату в контейнеры?
Фух, блять, разобрался. Оказывается, надо делать перенос строки строго в линуксовом формате по 0x0A, без 0x0D.
2 и 3 по-прежнему актуальны.
CQP по идее вообще не нужен в практических задачах, энкодер должен сам оптимальный QP подбирать.
У libvpx очень всё плохо с рейт-контролем, там надо -qmax ставить, чтобы QP слишком высоко не задирался, а то он как раз при смене сцен не понимает, что надо бит побольше выделить. Ну и вообще libvpx очень фиговый.
>>450145
Это икс. libvpx при одном проходе будет работать как CQP, если я правильно помню.
>>450159
Сейчас же поддержка MP4 (H.264) на многих бордах есть. С ним ебли гораздо меньше будет.
>>450169
Так x265 лучше чем libvpx-vp9. Нетфликс тут кстати недавно сравнивал с коммерческим энкодером VP9 от Рональда и он у них лучше икса на VMAF метрике, лол: https://medium.com/netflix-techblog/performance-comparison-of-video-coding-standards-an-adaptive-streaming-perspective-d45d0183ca95#4825
AV1 вот вроде как получше HEVC в теории, но всякие сочувствующие хевцу держатели патентов их посравнивали и говорят, что не лучше нифига. При этом гораздо требовательнее по вычислениям, что правда.
>>450164
>но мне всегда было интересно, что же на самом деле творит внутри эта адская машина
Вот эти книжки рекомендую для начала:
https://books.google.ru/books?id=k7nOAiIUo9IC
https://www.springer.com/us/book/9783319068947
Если ты про x264, то по нескольким причинам. Совместимость, консерватизм в сцене, коммьюнити очень понравилось как разработчики энкодера с ними всё обсуждали, советовались, прям растаяли.
На x265 поначалу жаловались, что он мылил, ну и поддержка в устройствах раньше слабая была. Сейчас-то наверно уже нет смысла, тем более на 4K. x264 на 4K очень не эффективен.
У libvpx-vp9 нет шансов добраться до релизов, т.к. хевц лучше (не очень сильно и у других реализациях даже наоборот бывает, но у коммьюнити только вариант libvpx есть, а он совсем плох). У libaom-av1 теоретически есть, но на практике MPEG уже изо всех сил VVC пилит, скорее всего AV1 тоже похоронят. Ну и libaom очень медленный, по крайней мере сейчас. Даже если его несколько лет оптимизировать, всё равно медленнее x265 будет скорее всего. При том, что аппаратных декодеров для AV1 пока не завезли.
rav1e ещё забыл. Но он скорее как игрушка Мозиллы. Во-первых, на Расте, довольно не практично для энкодера. Во-вторых, они вроде как для WebRTC его в первую очередь хотят, т.к. под качество не факт что буду допиливать.
>видосы в х265 раздают в 2018?
>>450200
>Так x265 лучше чем libvpx-vp9.
>>450201
>Если ты про x264, то по нескольким причинам
Блин, да, разумеется, я имел в виду 264. Весь 1080р и ниже на нём в лучшем случае. 265 только на 4к видео встретить можно. VP9 вообще нигде нет - похоже, его и не воспринимают как формат для хранения видео дома.
> x264 на 4K очень не эффективен.
На сколько? По битрейту на 20 или 30%. По скорости кодирования HEVC будет во сколько раз проигрывать? В 2, 3, 4, 10 раз?
> MPEG уже изо всех сил VVC пилит, скорее всего AV1 тоже похоронят
Как будто VVC будет быстрее.
> всё равно медленнее x265 будет скорее всего
Пока даже у H.265, на мой взгляд перспективы сомнительные, т. к. производительность десктопных камней растёт совсем символическим темпом со временем, а тут ещё глобальный экономический кризис подкрался, который, того и гляди, похоронит вообще всё.
> h265 куда эффективнее кодирует
Ну, ты либо пруф приноси, либо утверждай осторожнее.
Последние пруфы, которые видел я, не показывали, строго говоря, существенно больше 20%. Т. е. необходимость тратить в 5 раз больше вычислений не вполне очевидна, я считаю.
>Ну, ты либо пруф приноси, либо утверждай осторожнее.
Я другой анон, но вот например
https://medium.com/netflix-techblog/a-large-scale-comparison-of-x264-x265-and-libvpx-a-sneak-peek-2e81e88f8b0f
>HEVC is the successor to H.264/AVC and results reported from standardization showed about 50% bitrate savings for the same quality compared to H.264/AVC
сейчас как раз читаю.
>HEVC is the successor to H.264/AVC and results reported from standardization showed about 50% bitrate savings for the same quality compared to H.264/AVC
Ссылаются вот сюда:
https://doi.org/10.1109/TCSVT.2012.2221192
А там раз! И...
> The compression capability of several generations of video coding standards is compared by means of peak signal-to-noise ratio (PSNR)
PSNR очень неплохо так пропускает мыло.
>ared by means of peak signal-to-noise ratio (PSNR)
А, этого не видел. Сигнал-шум пиздос конечно в 2018 для оценки видео.
>По битрейту на 20 или 30%
Вроде больше. На 4к с 16x16 макроблоком особо ловить нечего.
>По скорости кодирования HEVC будет во сколько раз проигрывать?
Для лайва есть аппаратные энкодеры, для VOD не принципиально.
>Как будто VVC будет быстрее
Вполне возможно, что быстрее libaom.
Сам критерий сигнал-шум не плох. Он неудобен, т. к. предоставляет многомерную картину, по которой минимум не найдёшь. Корреляционные методы всяко лучше в этом вопросе. я бы с радостью увидел годную замену старушке SSIM, но пока есть сомнительный VMAF и гора местечковых модификаций SSIM, есть даже целые тома
https://www.wiley.com/en-us/Digital+Video+Quality:+Vision+Models+and+Metrics-p-9780470024041
https://www.springer.com/la/book/9789811002687
без каких-либо ясных выводов.
>Ссылаются вот сюда
У меня выше ссылка на сравнение по метрике VMAF. Там выигрыш меньше 50%, но разрешение 1080p. Вроде у них где-то и 4к по VMAF было, сейчас неудобно искать.
> Вроде больше. На 4к с 16x16 макроблоком особо ловить нечего.
Вроде бы при том же SSIM как раз не больше 30%.
> для VOD не принципиально.
Да-да. Я тут как раз забыл... После какого FPS непринципиально-то? После 0,45 или 0,1? Или даже после 0,05 не принципиально???
> Вполне возможно, что быстрее libaom.
Чисто для соблюдения правил, допускаю. Но серьёзно сомневаюсь.
> У меня выше ссылка на сравнение по метрике VMAF.
Видел. Пока метрика у меня не вызывает доверия. Прочитал две статьи (одну от netflix, и одну с критикой), но просветления не достиг.
> Там выигрыш меньше 50%
> меньше 50%
Оно точно стоит 5-кратного или 10-кратного замедления?
берёте прямо сейчас и прогоняете любой семпл через -c:v libx264 / -c:v libx265 / -c:v libvpx-vp9 / любое другое говно из https://www.ffmpeg.org/ffmpeg-all.html#toc-Video-Encoders этого списка - и смотрите результат и отписываете его в тред
> берёте прямо сейчас и прогоняете любой семпл
И получаете любые результаты. Это не эксперимент, а профанация.
> Microsoft Windows
> Chromium based
Впрочем, а не удивлён.
Ну так сделай нормально, хули ты? Напиши параметры, с которыми кодировал, выложи результат, чтобы каждый мог своим пиздоглазием убедиться. Ну и там уж тебе скажут малаца ты или хуй простой. Всяко семпл будет нагляднее абстрактной метрики, которую насчитали хуй пойми с чего.
>Сейчас же поддержка MP4 (H.264) на многих бордах есть. С ним ебли гораздо меньше будет.
Ты про время кодирования или что имеешь в виду?
С avc vs hevc так уже делали. Там у них сравнение на людях даже, по специальной методике. В районе 40% вроде результаты.
Можно ссылку?
А есть подводные?
x264 - охуенно проверенный кодек поддерживаемый практически везде и охуенно гибкий под любые задачи.
vp9 - жалкое сырое поделие с незначительным выигрышем по сжатию.
https://developers.google.com/media/vp9/bitrate-modes/
Я правильно понимаю, что CQP подразумевает постоянное Q для каждого отдельного кадра? Вообще, есть где-нибудь нормальное описание понятия квантайзера именно в разрезе кодирования видео? А то везде все ссылаются тупо на https://en.wikipedia.org/wiki/Quantization_(signal_processing) для обобщённой обработки сигнала, но как это связано с коэффициентами Фурье и прочих DTC, я никак не пойму. Почему q обычно 0-63? Почему с его ростом качество ухудшается, ведь скажем при любой оцифровке чем чаще происходит замер аналогового сигнала, тем выше качество.
> но как это связано с коэффициентами Фурье и прочих DTC, я никак не пойму. Почему q обычно 0-63?
Давай я тебе теперь дам ту же книжку, но на русском языке:
https://www.ozon.ru/context/detail/id/2337059/
(есть на генезисе)
> Всяко семпл будет нагляднее абстрактной метрики, которую насчитали хуй пойми с чего.
Опять ты самоуверенность излучаешь. Отучайся предвосхищать неочевидное!
Знаешь что такое деление с остатком? Коэффициенты ДКП из матрицы делятся на логарифм этого самого квантователя; всё, что не вышло за пределы зоны отсечки, будет приравнено к нулю.
каеф
https://sites.google.com/a/webmproject.org/wiki/ffmpeg/vp9-encoding-guide
Квантайзер это просто делитель коэффициентов матрицы, деление целочисленное. Чем больше разделили, тем больше информации исходника потеряли.
Вообще там с квантайзерами всё сложнее. Есть квантайзер, который задаёт пользователь на входе, для разных типов кадров (а их больше, чем просто I/P/B, есть ещё уровни B в минигопе) энкодер может выбирать свой QP, для каждого слайса можно задать другой QP и для каждого CTU тоже. Наконец, есть такая вещь как RDO квантизация, там вообще произвольным образом могут коэффициенты обнуляться, чтобы получить лучший трейдофф качество/размер.
Это политика. Они AV1 пропихивают.
Некоторые считают, что рано или поздно сдадутся и будут поддерживать так же, как сейчас H.264, через системные декодеры.
ну ебана в рот пиздос а страдаем мы
>Квантайзер это просто делитель коэффициентов матрицы, деление целочисленное. Чем больше разделили, тем больше информации исходника потеряли.
Ну мне в целом именно вот это было интересно, как примерно там происходит. Спасибо.
>Они AV1 пропихивают.
Решил посмотреть, что там за зверь идёт на смену 265. Ну запустил.
>0,022фпс
хех эхехе мда
>>450228
>Или даже после 0,05 не принципиально???
В общем знаешь, не, вот насчёт 0,05 и выше не знаю, но 0,022 мне что-то не понравилось, давайте быстрее.
Впрочем, справедливости ради надо сказать, что жмёт он уже сейчас очень богично. На CRF 50 другие кодеры дают дикое месево, а этот очень хорошую картинку где-то уровня CRF 30 того, чем жмут сейчас. Я лично очень впечатлён. Думал, смогу посравнивать артефакты, но их там вообще с лупой надо искать.
А вот VP9 показывает уже реально что-то осмысленное, что должно происходить по теории: пик2 - крупные пики I-кадров и мелкие P-кадры между ними.
Что не так с VP8?
Где именно?
Хз нигде ничего не менял. (или может тупо сразу накатил курьер по привычке и забыл)
не ну я серьезно, я же не шучу сейчас
понял, спасибо
Говорят, что есть 3 пейпера, где AV1 не лучше HEVC, и один, где лучше, но там типо сравнение неправильное, по PSNR.
По-быстрому нагуглил, вот походу эти 2 из 3 (попозже могу посмотреть кого они там точно имели ввиду):
https://infoscience.epfl.ch/record/254988/files/Comparison of Compression Efficiency between HEVC, VP9 and AV1 based on Subjective Quality Assessments.pdf
https://www.bbc.co.uk/rd/blog/2018-06-comparison-of-recent-video-coding-technologies-in-mpeg-and-aomedia
>по PSNR
Сейчас кстати у самого смешно было.
Я продолжаю пердолиться с разными режимами кодирования и пытаюсь поймать тот, который нормально закодирует мне одну сцену, где движение происходит на очень небольшой части экрана, а всё остальное статично. Плюс движение в остальном ролике.
Так вот, я устал сам всматриваться и решил прогнать через стоковые SSIM и сигнал-шум. И в общем по иронии, они оба мне на 1 место поставили тот режим, который разваливал именно эту сцену на квадраты. Я даже по битрейту кадров вижу, что кодер там пожадничал, но метрики упорно говорят, что всё заебись и "в среднем" этот семпл самый лучший.
Если смотреть в аналайзере на хевц, там у тебя будут пики I-кадров, пики P-кадров поменьше и между ними куча мелких B-кадров. Если minigop большой, то и эти B-кадры тоже разного размера, в зависимости от уровня.
В VPx нет B, там невидимые altref и роль референсных P с большим QP по краям выполняют golden вроде. Т.е. вроде как похоже должно быть, но в деталях - хз, по кодеку гугля нет толком документации.
К тому же может быть косяк рейтконтроля. Попробуй на CQP.
Вот этот аналайзер попробуй для VP9: https://github.com/mbebenita/aomanalyzer
Он вначале только для AV1 был, я его хотел портануть на VP9, но в описании сейчас указано, что вроде как уже работает. Можешь у разраба поспрашивать там в ишью или в ирце, они в #daala/#aomedia сидят все.
>>450718
>Вот этот аналайзер попробуй для VP9: https://github.com/mbebenita/aomanalyzer
хм
боюсь, что это не для меня
Чё там сложного, одну команду запустить. Он у них на сайте ещё выложен (aomanalyzer.org), но там вроде только AV1. Спроси в ирце,
фигли, там всё объяснят.
> через стоковые SSIM и сигнал-шум
Так ты покадровый SSIM посмотри! Распределение построй, эксцентриситет погляди, рассеяние!
Откуда брал билд? Нужно всегда последнее из гита брать. Ещё собирать надо с CONFIG_LOWBITDEPTH=1.
Всё нормальною. Так и должно быть. Ведь новые кодеки благодаря этому ультра-медленному кодированию могут почти в то же качество, что H.264 и битрейтах в 1,5 раза ниже, лол.
Тупо отсюда https://www.ffmpeg.org/download.html#build-windows
А у тебя на каком фпс эта штука работает? Чтобы просто знать, стоит ли оно всего.
Давно в последний раз собирал. Скоро соберу свежую и проверю.
-i {file} -c:v libvpx-vp9 -pass 2 -b:v 1080k -vf scale=-1:720 -map 0:0 -map 0:1 -threads 6 -tile-columns 0 -frame-parallel 0 -auto-alt-ref 1 -lag-in-frames 25 -aq-mode 0 -c:a libopus -b:a 64k -y -f webm {name.webm}
Че добавить, че убавить для уменьшения колличества шакалов?
>-map 0:0 -map 0:1
оно это и так само делает - можешь убирать
>-vf scale=-1:720
:flags=lanczos дописывай для нормального ресайза, там бикубик по умолчанию.
>м я так понимаю и у меня 6-тиядерный так что видимо 6 вместо 8 укажу
лол это не потоки это качество
не 8 а -8
почитай описание
вроде как читал, что можно
Нужен зондолис 63, хромоног 69 или любой браузер на собранном с умеющим AV1 ffmpeg'ом QtWebEngine (например, qutebrowser). В зондах поддержка AV1 по умолчанию выключена, как включать см. тут: https://www.ghacks.net/2018/08/03/av1-codec-support-in-firefox-and-chrome/. В qutebrowser AV1 работает из коробки.
О других браузерах см. тут: https://caniuse.com/#feat=av1
А смысл? Я бы и h.265|vp9 оставил пока только для пробы и не пытался из них слепить годно-рабочее решение для-дома-для семьи, ибо они пиздец просто какие неэффективные в случае вычислительной производительности скорости кодирования.
Кстати, что там сейчас у гугля на тытрубе по умолчанию? VP9, да?
1
Делаем скрин-кадр
2
ffmpeg -i preview.png -c:v libvpx-vp9 -vf scale=iw+1:-1 -pix_fmt +yuv420p -qmax 0 preview.webm
3
ffmpeg -i out.webm -i preview.webm -map 0 -map 1 -c copy out+preview.webm
Но макаба решила за меня че на превью ставить, как фиксить
>О других браузерах см. тут: https://caniuse.com/#feat=av1
ну я верю что фурри что-нибудь там нахуевертили, но искаропки оно не работает, похоже
Ну давай!
Последовательность crowdrun от SVT: https://media.xiph.org/video/derf/y4m/crowd_run_1080p50.y4m
Одинаковый SSIM. Ориентируемся на среднюю ширину потока данных в 20 Мбит. У libvpx размер выходного файла не более, чем у libx264. Одинаковый центральный процессор. Даёшь сюда сравнительные характеристики по потреблению памяти и времени кодирования.
Ну, или давай я сделаю с твоими любимыми настройками libvpx.
ща
-c:v libx264 -b:v 20M -preset veryslow
норм будет? Или ещё что-нибудь там надо накинуть? Я 264 только вскользь просмотрел.
насчёт placebo не буду тролить, но vp9 я использую на cpu-used=-8, т.ч. должно быть равноценно
Алсо как ты хочешь сделать одинаковый SSIM на разных кодерах? Это же тот ещё пердолинг подбирать параметры, чтобы всё сошлось. Я, кстати, до сих пор не мерил, кто лучше 264 или вп9.
> -c:v libx264 -b:v 20M -preset veryslow
Для начала сойдёт.
> Алсо как ты хочешь сделать одинаковый SSIM на разных кодерах?
Примерно одинаковый.
> Это же тот ещё пердолинг подбирать параметры, чтобы всё сошлось.
Кодируй на несколько crf или как там оно у libvpx. Выбирай наиболее подходящее.
> Я, кстати, до сих пор не мерил, кто лучше 264 или вп9.
Вот, кстати, и помереем.
Алсо, рекомендую начать отдельный тред!
Это копия, сохраненная 30 января 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.