= Часто задаваемые вопросы WebM-треда в /s/ =

Все нижеследующие ключи относятся к FFmpeg, если не обозначено иное. Особенности размещения WebM в интернете относятся к Макабе (2ch.hk), если не обозначено иное.

<<TableOfContents>>

<<Anchor(console)>>
== Почему консоль ==

Преимущество FFmpeg состоит в том, что он предоставляет достаточно низкоуровневый доступ к процессу кодирования, обладая при этом огромной функциональностью. Дело не в том, что консольный интерфейс чем-то лучше, а в возможности управлять каждым параметров энкодера, добиваясь максимально качественного результата. GUI, как правило, данной способности лишены и сильно ограничивают гибкость настройки. [[https://arhivach.org/thread/109411/#1396973|Развёрнутый ответ.]]

<<Anchor(wrappers)>>
== Какую обёртку FFmpeg использовать ==

Хоть обёртки (т.е. программы, использующие внутри себя FFmpeg, но предоставляющие упрощённый интерфейс) и ограничивают гибкость, они вполне оправданы для типового энкода, если устраивают опции, которые они использует (во многих обёртках можно вводить и raw-опции FFmpeg, но ограничения скорее всего будут). Текущие популярные варианты:

 * Кроссплатформенные: [[../boram|boram]]
 * Windows: [[https://gitgud.io/nixx/WebMConverter|WebM for Retards]], [[http://www.xmedia-recode.de/|XMedia Recode]] (nonfree)
 * Linux: [[https://pypi.python.org/pypi/webm|webm.py]]

[[https://github.com/Kagami/webm.py/wiki/Related-links#webm-tools|Полный список.]] [[https://github.com/Kagami/webm.py/wiki/Related-links#online|Онлайн-конвертеры.]]

<<Anchor(template)>>
== Рекомендуемый минимальный набор параметров ==

 * VP9, умеренное качество, приемлемая скорость: {{{ffmpeg -i in.mkv -c:v libvpx-vp9 -b:v ???k -threads 8 -g 128 -frame-parallel 0 -pix_fmt yuv420p -c:a libopus -b:a 128k -sn -pass ? -y out.webm}}}
 * VP9, лучшее качество, но медленно: {{{ffmpeg -i in.mkv -c:v libvpx-vp9 -b:v ???k -tile-columns 0 -speed 0 -g 9999 -frame-parallel 0 -pix_fmt yuv420p -c:a libopus -b:a 128k -sn -pass ? -y out.webm}}}
 * VP8: {{{ffmpeg -i in.mkv -c:v libvpx -b:v ???k -threads 8 -speed 0 -g 9999 -auto-alt-ref 1 -lag-in-frames 25 -pix_fmt yuv420p -c:a libopus -b:a 128k -sn -pass ? -y out.webm}}}

ffmpeg 3.3+/libvpx 1.6.2+ позволяют использовать опцию {{{-row-mt}}} для лучшего распараллеливания процесса транскодинга (доступна в boram). См. [[https://groups.google.com/a/webmproject.org/forum/#!topic/codec-devel/oiHjgEdii2U|описание]].

<<Anchor(vp9-slow)>>
== Медленно кодируется VP9/используется только одно ядро ==

 1. Убедиться, что '''не''' выбран режим {{{-quality best}}} (good по умолчанию)
 2. Убедиться, что используется версия {{{libvpx >= 1.4.0}}}
 3. Убедиться, что присутствует ключ {{{-threads 8}}} (или больше)
 4. {{{-tile-columns >= 3}}} для 8 тредов (6 по умолчанию)
 5. {{{-row-mt 1}}} (опционально)

<<Anchor(vp9-threads)>>
== Процессор всё ещё не полностью загружен при транскодинге в VP9 ==

libvpx-vp9 [[http://permalink.gmane.org/gmane.comp.multimedia.webm.devel/2339|использует tile-columns multithreading]], поэтому число потоков энкодера зависит от разрешения видео. В общем случае число потоков считается как {{{2^floor(log2((w+63)/256))}}}, где {{{w}}} — ширина итогового видео. Т.е.:

 * Ширина <=448px = 1 тред
 * Ширина >448px = 2 треда
 * Ширина >960px = 4 треда
 * Ширина >1984px = 8 тредов
 * Ширина >4032px = 16 тредов

и т.д. При этом треды энкодера не обязательно будут загружать ядра на 100% в силу ограничений алгоритмов распараллеливания. Если процессор изрядно простаивает, имеет смысл кодировать видео по частам в отдельных процессах FFmpeg, используя опции {{{-ss}}} и {{{-t}}} и склеивая полученные файлы на уровне демуксера. Опция {{{-tile-columns}}} (6 по умолчанию) указывает на максимальное число рекурсивных делений видео на колонки (реальное значение считается как {{{log2(threads)}}}). Следует отметить, что {{{-tile-columns > 0}}}, ровно как и разделение видео на независимые части, приводит к некоторому ухудшению качества итогового видео. См. также опцию [[https://groups.google.com/a/webmproject.org/forum/#!topic/codec-devel/oiHjgEdii2U|-row-mt]].

<<Anchor(vbr)>>
== VBR не попадает в лимит ==

Rate control в libvpx-vp9 ещё далёк от совершенства. Для несложных исходников вроде анимации имеет смысл выставить {{{-qmax}}} в районе 30÷35, чтобы избежать undershoot (или использовать CRF, например: {{{-b:v 0 -crf 25}}}). Так или иначе, полностью промахов мимо лимита не избежать. Если промах составляет несколько мегабайт, лучше перекодировать видео со слегка изменёнными {{{-b:v/-qmin/-qmax}}}. Можно перекодировать только аудио и перемуксить со старым видео, эта операция занимает совсем немного времени (см. [[https://github.com/Kagami/webm-thread/blob/master/tools/fit-audio-to-limit|скрипт]], [[https://github.com/VP8M8/WebM-Auto-Audio/blob/master/webm-auto-audio.sh|ещё один]]). При совсем небольшом overshoot в районе десятков килобайт, перемуксить с помощью mkvmerge может быть достаточно (муксер mkvmerge чуть более эффективен, чем FFmpeg). Ещё один вариант — обрезать секунды или доли секунды с конца ({{{-c copy -t ??}}}), если исходный хронометраж не критичен.

<<Anchor(vbr-crf)>>
== VBR vs. CRF ==

В [[https://arhivach.org/thread/109411/#1434939|некоторых случаях]] 2pass CRF выдаёт чуть лучшее качество, чем 2pass VBR, при том же размере файла. Поэтому на низких битрейтах может иметь смысл подогнать значение ключа {{{-crf}}} под требуемый размер файла. Например: {{{-b:v 0 -crf 50}}}

См. также: [[https://www.youtube.com/watch?v=thvSyJN1vsA&t=25m45s|сравнения Netflix компрессии различных режимов libvpx-vp9]].

<<Anchor(seek)>>
== При использовании ключа -ss энкодинг начинается не сразу/ключ -to работает некорректно ==

При использовании ключа {{{-ss}}} '''после''' {{{-i}}}, FFmpeg декодирует видео покадрово до указанного момента. Если опции {{{-ss}}} указана '''перед''' {{{-i}}}, будут использоваться ключевые кадры, что значительно ускорит процесс. Однако, ключ {{{-to}}} в таком случае начинает работать как {{{-t}}}. [[https://trac.ffmpeg.org/wiki/Seeking|Подробнее.]] Оптимальное решение: использовать {{{-ss}}} '''перед''' {{{-i}}}, '''не''' использовать {{{-to}}} (см. также раздел про субтитры).

<<Anchor(webm-preview)>>
== Почему миниатюра чёрная/как сделать превью ==

Макаба использует первый кадр видео для генерации миниатюры, который в большинстве фильмов и клипов чёрный. Есть несколько способов получить адекватное превью:

 * В случае клипа часто достаточно убрать первые полсекунды ({{{-ss 0.5}}})
 * Можно воспользоваться хаком: кодировать кадр превью в виде второго видео-трека с большим разрешением; Макаба использует его для миниатюры, браузеры же будут проигрывать только первый трек ([[https://github.com/Kagami/webm-thread/blob/master/tools/add-preview|скрипт]], [[https://hive.blasux.ru/webm/s?action=AttachFile&do=get&target=preview-guide.webm|видеоурок]]).<<BR>>'''Внимание:''' многие конвертеры могут некорректно обрабатывать полученное видео. Например, отображать только единственный кадр второй дорожки. Поэтому используйте данный способ, если видео предназначено исключительно для двача.
 * [[https://github.com/Kagami/webm-thread/wiki/Pro-tips#Добавление-превью|Способ с добавлением кадра превью в начало видео]]

Поддержка создания превью через GUI присутствует в [[../wybm|wybm]] и [[../boram|boram]].

<<Anchor(pix-fmt)>>
== Превью не отображается/таб крэшится/зелёная полоса по краям/странные цвета ==

Вероятнее всего была использована плохо поддерживаемая [[https://en.wikipedia.org/wiki/Chroma_subsampling|цветовая субдискретизация]]. Следует перекодировать видео с опцией {{{-pix_fmt yuv420p}}}

<<Anchor(sar)>>
== Серый фон в нижней части видео/WebM не помещается в контейнер Макабы/растянутое превью ==

Макаба не поддерживает анаморфные исходники и использует значения !PixelWidth/PixelHeight, указанные в файле, тогда как для отображения используются значения !DisplayWidth/DisplayHeight.

Пример: допустим, имеется видео со следующими метаданными: ''Stream #0:0: Video: vp9 (Profile 0), yuv420p(tv), '''960x540, SAR 249:224 DAR 83:42''', 23.98 fps, 23.98 tbr, 1k tbn, 1k tbc (default)''. Макаба поместит видео в контейнер размером 960x540, видео же будет отображено браузером в разрешении (960*249/224)x540 = 1067x540 и, как следствие, целиком в контейнер не впишется. Чтобы этого избежать, следует использовать SAR 1:1: {{{-vf scale=960:960/dar}}}

Следует отметить, что миниатюра также будет иметь аспект PixelWidth:PixelHeight, поэтому при SAR не равному 1:1, либо при использовании разных аспектов для первого видео-трека и видео-трека превью, возможно искажение оригинальных пропорций последнего.

<<Anchor(file-preview)>>
== Нет миниатюр у WebM-файлов в проводнике ==

Необходимо установить одну из нижеследующих программ:

 * [[http://www.babelsoft.net/products/mediapreview.htm|Media Preview]] (Windows, nonfree)
 * [[http://www.videohelp.com/software/Icaros|Icaros]] (Windows, nonfree)
 * [[https://github.com/dirkvdb/ffmpegthumbnailer|ffmpegthumbnailer]] (Linux)

<<Anchor(rewind)>>
== Не работает/тормозит перемотка ==

--(В libvpx-vp9 по умолчанию нет ограничений на частоту появления ключевых кадров ([[https://arhivach.org/thread/120883/#1496522|что экономит битрейт]]), поэтому в видео с редкими сменами сцен их может быть слишком мало, что делает перемотку неудобной (эффективная смена позиции в видео возможна только по границам ключевых кадров). Если быстрая перемотка важнее итогового размера, следуется использовать ключ {{{-g}}}. Например, при {{{-g 120}}} и видео 24 fps, ключевые кадры будут появляеться не реже, чем каждые 5 секунд.)--

'''UPDATE:''' В libvpx 1.6.0 значение по умолчанию для {{{kf_max_dist}}} установлено в 128, см. [[http://permalink.gmane.org/gmane.comp.multimedia.webm.devel/2587|[1] ]], [[https://chromium.googlesource.com/webm/libvpx/+/14828e756f92175c1a3c097c1048c01bbfba43a9%5E!/|[2] ]]

<<Anchor(subs)>>
== Как прикрепить субтитры ==

Браузеры не поддерживают встроенный софтсаб (только внешние сабы через тег [[https://developer.mozilla.org/en-US/docs/Web/HTML/Element/track|<track>]]), поэтому единственный вариант, не требующий специальной поддержки со стороны сайта, — хардсаб.

 * Базовый синтаксис: {{{-vf "subtitles=sub.ass"}}} (работает и с файлами типа mkv, mp4)
 * Для хардсаба на Windows необходимо предварительно [[https://github.com/Kagami/webm-thread/wiki/fontconfig-on-windows|настроить Fontconfig]], либо использовать сборку ffmpeg с включённой опцией !DirectWrite для libass
 * Если в используемой команде FFmpeg ключ {{{-ss}}} стоит '''перед''' {{{-i}}}, требуется добавить фильтр {{{setpts}}} со сдвигом на то же число секунд: {{{-vf "setpts=PTS+??/TB,subtitles=sub.ass,setpts=PTS-STARTPTS"}}} ([[https://trac.ffmpeg.org/ticket/2067|баг]])
 * Если в файле несколько треков с субтитрами, выбрать нужный можно с помощью опции {{{si}}}, например: {{{-vf "subtitles=in.mkv:si=1"}}} (выберет второй трек с субтитрами; индекс относительный и начинается с нуля)
 * [[https://ffmpeg.org/ffmpeg-filters.html#Notes-on-filtergraph-escaping|Правила экранирования специальных символов]] (проще переименовать файл)
 * На Windows при указании полного пути до файла с субтитрами, следует использовать синтаксис: {{{-vf "subtitles=C\\:/dir/sub.ass"}}} (проще переместить в текущий каталог)

<<Anchor(resize)>>
== Настройки ресайза ==

Фильтр Mitchell-Netravali ({{{-param0 1/3 -param1 1/3}}}) обеспечивает минимальное количество артефактов ресемплинга, при этом облегчая энкодеру задачу, — фильтры типа Lanczos сохраняют слишком много деталей, которые трудно сжимать. См. также:

 * https://arhivach.org/thread/120883/#1496241
 * http://avisynth.nl/index.php/Resize#LanczosResize
 * http://www.imagemagick.org/Usage/filter/
 * http://www.imagemagick.org/Usage/filter/nicolas/

{{attachment:cubic_survey.gif}}

<<Anchor(cut)>>
== Как вырезать участок видео без перекодирования ==

Любое видео должно начинаться с ключевого кадра, поэтому при обрезке фрагмента через {{{-c copy}}}, значение ключа {{{-ss}}} '''обязано''' указывать на ключевой кадр с точностью хотя бы до миллисекунды. Заканчиваться же видео может в произвольном месте (на произвольном кадре). Команда в общем случае выглядит так: {{{ffmpeg -i in.webm -ss ??.??? -t ?? -c copy out.webm}}}

Способы узнать метки времени ключевых кадров:

 * В mpv открыть видео, нажать паузу и перемотать к нужному моменту с помощью стрелок; нажать на время в всплывающем меню OSC для отображения миллисекунд (все форматы; шаг перемотки (по умолчанию 5 секунд) можно изменить в настройках)
 * {{{mkvinfo -v in.webm | grep 'key, track number 1'}}} (mkv/webm; при условии, что видео идёт первым треком)
 * {{{ffprobe -v quiet -i in.webm -show_packets -select_streams 0:v:0 -of compact | grep flags=K}}} (все форматы)
 * {{{webm_info -i in.webm -all -noaudio | grep key:1}}} (webm; необходимо собрать из [[https://chromium.googlesource.com/webm/libwebm/+/master/webm_info.cc|исходников]])

Или же можно использовать специализированный софт: [[../wybm|wybm]] (webm), [[https://github.com/ozmartian/vidcutter|VidCutter]] (все форматы, нет подсветки ключевых кадров), [[https://github.com/mifi/lossless-cut|LosslessCut]] (mp4/webm/ogg, нет подсветки ключевых кадров), [[http://avidemux.sourceforge.net/|avidemux]] (все форматы).

<<Anchor(split)>>
== Разрезать видео на части ==

{{{mkvmerge --split ??m -o out.webm in.webm}}}

Фрагменты могут иметь чуть больший итоговый размер в силу особенностей работы mkvmerge. Скрипт, который делит файл на части строго не больше указанного размера, доступен по [[https://github.com/Kagami/webm-thread/blob/master/tools/mkvsplit|ссылке]].

<<Anchor(concat)>>
== Склеить видео из нескольких частей ==

 * Если файлы имеют расширения vob, mpg, ts: {{{ffmpeg -i "concat:1.vob|2.vob|3.vob" -c copy out.vob}}}
 * Если файлы имеют расширения mkv, webm, mp4, avi и '''одинаковые форматы''': {{{ffmpeg -f concat -i list.txt -c copy out.webm}}}, предварительно создав файл {{{list.txt}}} с содержимым:
{{{
file '/path/to/1.webm'
file '/path/to/2.webm'
file '/path/to/3.webm'
}}}
 * То же самое, но только для файлов с расширениями mkv и webm: {{{mkvmerge -o out.webm 1.webm + 2.mkv + 3.webm}}}
 * Если в файлах используются '''разные форматы''', необходимо пережатие: {{{ffmpeg -i 1.mp4 -i 2.mkv -lavfi "[0:v:0][0:a:0][1:v:0][1:a:0]concat=n=2:v=1:a=1[v][a]" -map "[v]" -map "[a]" out.webm}}}

[[https://trac.ffmpeg.org/wiki/Concatenate|Подробнее.]] '''Внимание:''' звуковые дорожки использующие VBR в общем случаев склеивать без пережатия некорректно. Например, Firefox может отказаться проигрывать WebM-файл, полученный из двух других с аудиотреками в формате Opus.

<<Anchor(webmfr)>>
== Почему WebM for Retards … ==

 * … кодирует короткое видео чуть ли не сутки: нужно убрать опцию {{{-quality best}}} из строки параметров
 * … обрезает исходное видео по длине: нужно убрать опцию {{{-fs ?}}} из строки параметров

== 60fps ==

Искусственное повышение частоты кадров можно считать не более, чем модной игрушкой. В большинстве случаев блендинг/интерполяция дают на выходе много артефактов, а полезность операции остаётся под вопросом. Тем не менее, ниже приведены ссылки на программы и документацию, посвящённые этому вопросу:

 * Фильтры [[https://ffmpeg.org/ffmpeg-filters.html#framerate|framerate]] (blend), [[https://ffmpeg.org/ffmpeg-filters.html#minterpolate|minterpolate]] (dup, blend, mci) для FFmpeg
 * [[http://forum.ixbt.com/topic.cgi?id=60:2988|Длинный тред(ы) на ixbt]]
 * [[https://dump.bitcheese.net/files/ypomona/hybrid-60fps.webm|Видеоурок по Hybrid]] (nonfree)
 * [[https://avisynth.org.ru/mvtools/mvtools.html|Плагин MVTools для AviSynth]], [[https://github.com/dubhater/vapoursynth-mvtools|порт под VapourSynth]]
 * [[https://www.svp-team.com/wiki/Plugins:_SVPflow|Плагин SVPflow для AviSynth/VapourSynth]] (nonfree), [[http://pastebin.com/kwtz9HhQ|гайд]]

<<Anchor(capture)>>
== Захват видео с экрана ==

 * [[https://trac.ffmpeg.org/wiki/Capture/Desktop|Захват видео/аудио с помощью FFmpeg]]
 * [[https://trac.ffmpeg.org/wiki/Capture/ALSA|Захват звука с ALSA с помощью FFmpeg]] (Linux only)
 * [[https://obsproject.com/|Open Broadcaster Software]] (может захватывать контекст OpenGL/Direct3D)

Несколько советов:

 * Если нужно получить видео в формате 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}}})

<<Anchor(alpha)>>
== Как сделать прозрачное видео ==

Последние версии Firefox и Chrome поддерживают прозрачность в WebM, используйте формат {{{yuva420p}}} в FFmpeg для результирующего видео (выбирается по умолчанию для исходников с прозрачностью, например PNG картинок).

Чтобы добавить прозрачность в обычное видео, можно использовать маски, например: {{{ffmpeg -i in.mkv -r ntsc-film -loop 1 -i mask.png -lavfi '[1:v]alphaextract[a];[0:v][a]alphamerge' out.webm}}}<<BR>>
{{{mask.png}}} это картинка с тем же разрешением, что и исходное видео, закрашенная чёрным там, где прозрачности быть не должно, и прозрачная в остальных местах.

<<Anchor(edge)>>
== Как смотреть WebM в Edge ==

Следует использовать [[https://github.com/Kagami/webmify|данный юзерскрипт]].

<<Anchor(colormatrix)>>
== Какой должна быть цветовая матрица ==

Предпочтительнее использовать BT.709 и соответстующим образом маркировать видео (опция {{{-colorspace bt709}}}). [[https://github.com/Kagami/webm.py/wiki/Notes-on-encoding-settings#colormatrix|Подробности.]]

<<Anchor(hdr)>>
== Как кодировать HDR ==

Примеры для наиболее распространённого bt2020nc/bt2020/smpte2084, с целью дальнейшего просмотра видео на BT.709 устройстве.

'''Вариант 1: метаданные'''
 1. Опция {{{-colorspace bt2020_ncl}}} при кодировании (не обязательно, но раз предусмотрено поле на уровне VP9, то лучше так).
 2. Прописать метаданные на уровне контейнера через {{{mkvmerge --colour-transfer-characteristics 0:16 --colour-primaries 0:9 --max-luminance 0:1000 --min-luminance 0:0.001 in.webm -o out.webm}}} (нужен свежий MKVToolNix).

Плюсы: не нужно преобразование цветовых пространств. Минусы: в браузерах будет отображено некорректно.

'''Вариант 2: конвертация'''
 1. Опция {{{-colorspace bt709}}} при кодировании (для лучшей совместимости с Firefox 52).
 2. Фильтр {{{-vf zscale=p=709:t=709:m=709:npl=600}}} (опцию npl можно подкрутить в зависимости от исходника).

Плюсы: результат должен выглядеть везде более-менее одинаково.

<<Anchor(pack-convert)>>
== Сконвертировать множество видео за один раз ==

'''Задача:''' сконвертировать все mp4 файлы из текущего каталога в формат WebM.

 * Linux (Bash): {{{for f in *.mp4; do ffmpeg -i "$f" "${f%.*}.webm"; done}}}
 * Linux (Zsh): {{{for f in *.mp4; ffmpeg -i $f $f:r.webm }}}
 * Windows (!PowerShell): {{{ls *.mp4 | % { ffmpeg -i $_.name "$($_.basename).webm" } }}}

'''Задача:''' сконвертировать все файлы из каталога {{{in}}} в каталог {{{out}}} в формат WebM, сохраняя структуру.

 * Linux (Bash): {{{find in -type f -print0 | while read -d $'\0' f; do mkdir -p "out/${f%/*}" && ffmpeg -nostdin -i "$f" "out/${f%.*}.webm"; done}}}
 * Linux (Zsh): {{{for f in in/**/*(.); mkdir -p out/$f:h && ffmpeg -i $f out/$f:r.webm}}} 
 * Windows (!PowerShell): {{{ls in -rec | ? { !$_.psiscontainer } | % { $d=rvpa -rel $_.directoryname; mkdir -f "out\$d"; ffmpeg -i $_.fullname "out\$d\$($_.basename).webm" } }}}

<<Anchor(clear-meta)>>
== Удалить метаданные ==

{{{ffmpeg -i in.webm -c copy -map_metadata -1 out.webm}}}

<<Anchor(youtube)>>
== Скачать с YouTube/прочего стриминг-сайта ==

 * [[https://rg3.github.io/youtube-dl/|youtube-dl]] (CLI)
 * [[http://docs.livestreamer.io/|Livestreamer]] (CLI)
 * [[../wybm|wybm]] (GUI)
 * [[https://www.4kdownload.com/products/product-videodownloader|4K Video Downloader]] (GUI)
 * [[https://mrs0m30n3.github.io/youtube-dl-gui/|youtube-dlG]] (GUI)
 * [[http://jdownloader.org/|JDownloader]] (GUI)
 * [[https://addons.mozilla.org/en-US/firefox/addon/complete-youtube-saver/|Complete YouTube Saver]] (Firefox addon)
 * [[http://keepvid.com/|KeepVid]] (online)
 * [[http://en.savefrom.net/|savefrom]] (online)

<<Anchor(vedit)>>
== Бесплатные видеоредакторы ==

'''Простые редакторы (cut, crop):'''

 * [[http://fixounet.free.fr/avidemux/|avidemux]]
 * [[http://www.virtualdub.org/|VirtualDub]] (Windows only)

'''Полнофункциональные:'''

 * [[https://www.shotcut.org/|Shotcut]] ([[https://www.shotcut.org/bin/view/Shotcut/TutorialVideos|видеоуроки]])
 * [[https://www.blender.org/|Blender]] ([[https://www.youtube.com/playlist?list=PLjyuVPBuorqIhlqZtoIvnAVQ3x18sNev4|видеоуроки]])
 * [[https://kdenlive.org/|Kdenlive]] (Linux only)
 * [[http://cinelerra-cv.org/|Cinelerra]] (Linux only)

[[http://xmodulo.com/good-video-editing-software-linux.html|Обзор редакторов.]]

<<Anchor(aedit)>>
== Бесплатные аудиоредакторы ==

 * [[http://www.audacityteam.org/|Audacity]]
 * [[https://ardour.org/|Ardour]]

<<Anchor(links)>>
== Прочие ссылки ==

 * [[https://github.com/Kagami/webm-thread/wiki|Вики для новичков по кодированию с помощью FFmpeg]]
 * [[https://github.com/Kagami/webm.py/wiki|Вики на английском по чуть более продвинутым вопросам]]
 * [[https://arhivach.org/thread/120883/#1477181|Кодирование GIF]]
 * [[https://arhivach.org/thread/109411/#1434421|Сохранение качества видео на низких битрейтах]]
 * [[https://arhivach.org/thread/120883/#1482277|Оптимальные параметры кодирования статичной картинки]]
 * [[https://arhivach.org/thread/109411/#1426151|О состоянии дел с WebM в браузерах]]
 * [[https://arhivach.org/thread/136981/#1549242|Мифы об энкодинге/декодинге на GPU]]


<<BR>>
<<Navigation(siblings)>>