I Love Frontend
Оптимизация mp4 видео для быстрой загрузки
С уходом Flash и ростом доли мобильных устройств все большую популярность приобретает html5 видео. В одной из статей мы даже рассказывали о том, как повысить скорость вашего сайта заменив GIF анимации html5 видеороликами. Тем не менее, видео файлы также требуют некоторых оптимизаций, которые необходимо выполнить для того, чтоб эффективно использовать их на сайте. Наиболее важным шагом оптимизации можно назвать оптимизацию видео контента к потоковому воспроизведению на сайте. Без такой оптимизации воспроизведение видео может быть задержано на сотни миллисекунд и мегабайты трафика ваших пользователей будут потрачены впустую из-за безуспешных попыток воспроизвести ролик. В этой статье я расскажу вам, как оптимизировать ваши видео файлы для потокового воспроиведения видео.
Как работает потоковое воспроизведение MP4
Как говорилось в одной из статей HTML5 видео стало кроссбраузерной альтернативой воспроизведению видео через Flash. В 2016 году H.264 кодированое видео в контейнере MP4 (которое дальше будем называть MP4 видео) превратилось в стандартный формат для онлайн видео на сайтах. Потому, когда мы говорим об оптимизации HTML5 видео, то имеем ввиду то, как оптимизировать MP4 видео для быстрого воспроизведения. И дальше мы будем говорить о структуре mp4 файла и том, как работает потоковое видео.
Такие поиски Moov атома приводят к временным задержкам и расходованию трафика. К сожалению, видео не может быть воспроизведено до тех пор, пока не будет найдет этот самый Moov атом. На скриншоте ниже мы можем видеть запросы браузера к серверу в попытках воспроизвести неоптимизированный MP4 файл как HTML5 видео:
Видео с Moov атомом в начале файла будет загружаться и проигрываться быстрее, в результате повышая удобство пользования вашим сайтом.
Оптимизация MP4 для быстрой потоковой передачи
Мы уже увидели, что для оптимизации HTML5 видео необходимо реогранизовать атомы MP4 файла таким образом, чтоб атом Moov находился в самом начале. Как же нам это сделать? Большинство программ кодирования видео имеют опцию “оптимизировать для web” или “оптимизировать для потокового воспроизведения”, которые как раз и сделают за нас эту самую оптимизацию. Вы должны следить за настройками кодирования видео, чтоб быть уверенными в том, что получите оптимизированный файл. Например, на рисунке ниже мы видим open source видео кодер Handbrake, который имеет опцию “Web Optimized” в своих настройках. Эта настройка и перемещает атом Moov в начало файла.
Это решает проблему если вы создаете MP4 файл из оригинального исходного видео, но, что, если у вас уже есть mp4 файл?
Вы можете преобразовывать сущестующие видео файлы, чтоб оптимизировать его для потокового воспроизведения. Видеокодер с открытым исходным кодом FFMpeg может реогранизовать сруктуру существующего MP4 файла и размещать Moov в начале файла. В отличие от полного перекодирования файла такой процесс требует меньше ресурсов процессора, так как трансформация файла является более простой операцией. Ниже приведен пример команды для оптимизации файла input.mp4 при помощи утилиты FFMpeg. В результате мы получаем оптимизированный файл output.mp4:
Для клиентов сервиса Rigor мы добавили еще один пункт в наш чеклист анализа производительности Zoompf, цель которого обнаружение неоптимизированных для воспроизведения HTML5 файлов MP4 видео. Если просто хотите проверить ваш сайт, вы можете воспользоваться нашим бесплатным сервисом.
Выводы
Proudly powered by Hexo and Theme by Hacker © 2018 Denis Zavgorodny
Настройки для YouTube
Видео высокого качества (для авторов с высокоскоростным подключением к Интернету):
Проигрыватели YouTube имеют соотношение сторон 16:9. Содержание другого формата тоже будет отображаться без искажений, поскольку система добавляет вертикальные (формат «почтовый ящик») и горизонтальные (формат «конверт») черные полосы по краям. Чтобы видео полностью заполняло окно проигрывателя, используйте следующие разрешения:
1080p: 1920 х 1080; 720p: 1280 х 720; 480p: 854 х 480; 360p: 640 х 360; 240p: 426 х 240.
YouTube автоматически добавляет черные полосы, чтобы видео отображалось корректно без обрезки или растягивания независимо от размера видеокадра и экрана проигрывателя.
Например, система добавит добавит вертикальные полосы (формат «почтовый ящик») к видео формата 4:3, чтобы привести изображение к формату 16:9. То же самое происходит, когда проигрыватель изменяет размер (например, при встраивании на другой сайт). Поэтому кадрам формата 16:9 добавляются полосы сверху и снизу, чтобы соответствовать соотношению 4:3. Аналогично к анаморфным видео автоматически добавляются горизонтальные полосы (формат «конверт») в проигрывателях размера 16:9 или 4:3. Однако это возможно только в том случае, если исходное соотношение сторон сохраняется.
После добавления видео его расположение в окне проигрывателя можно изменить с помощью тегов форматирования.
Если вы до загрузки использовали в ролике горизонтальные полосы (например, чтобы получить кадр формата 4:3 из исходного 16:9), широкоэкранный проигрыватель добавит к ним вертикальные. В результате изображение будет окружено неприглядной черной рамкой. Поэтому стоит исключить использование дополнительных шторок и учитывать данный момент при экспортировании видео.
Рассмотрим пример создания видео для заливки на Youtube, со своими настройками и с помощью использования штатных пресетов. Итак, запускаем программу Adobe Premiere Pro, импортируем видео, размещаем его на таймлайне, смотрим его характеристики:
И для его вывода, выполняем команду: File > Export > Media (Ctrl/Cmd + M). Также Убеждаемся, что «экспорт видео» / Export Video и «экспорт аудио» / Export Audio, обе эти опции выбраны, чтобы файл содержал как видео, так и аудио. Format: H.264.
Preset: для DSLR видео 1080p23.976 выбираем соотвественно: YouTube HD 1080p 23.976.
Смотрим настройки источника и выходные настройки видео:
Настройки: Video > Basic Video Settings, выбираем разрешение, частоту кадров, прогрессивную развертку, PAR и профиль High.
Настройки: Video > Bitrate Settings, здесь можно выбрать количество проходов и переменный/постоянный (CBR/VBR) битрейт. Также уже предустановленный максимальный битрейт для стандартного видео 1080p по требованиям сервиса YouTube.
Закладка Audio: AAC аудио формат, 48кГц, стерео, битрейт 320 Кбит/с, все соответствует требованиям YouTube.
В закладке Multiplexer выбран рекомендуемый контейнер: MP4.
Для того чтобы отправить видео в очередь задач в Adobe Media Encoder нажимаем на кнопку: Queue. Для прямого экспорта, нажимаем на кнопку: Export.
Можно сохранить настройки экспорта как новый стиль / пресет, для этого нажимаем на кнопку: Save Preset.
В окне Choose Name вводим имя для пресета и нажимаем на кнопку: ОК.
И созданный пресет будет доступен в списке Preset:
*В версии программы Adobe Premiere Pro CC 2021 при выборе Формат: H.264. Шаблон настроек: YouTube 1080p FullHD.
Получим следующие параметры натроек кодека: Профиль: Высокий. Уровень: 4.2. VBR 1 проход. Целевой и максимальный битрейт: 16 Мбит/с.
Хотя YouTube рекомендует для FullHD видео, следующий битрейт: 10 Мбит/с (для частоты кадров 24, 25, 30) и 15 Мбит/с (для частоты кадров 48, 50, 60).
Если в программе Adobe Premiere Pro CC 2021 (v15.0) и выше нет пресетов YouTube, как на картинке справа:
То, идём в следующую директорию:
C:\Program Files\Adobe\Adobe Premiere Pro 2021\MediaIO\systempresets\4E49434B_48323634
и проверяем там наличие пресетов для YouTube, Twitter и т.д. Далее, нажимаем на кнопку: Импорт стиля.
Выбираем пресет и нажимаем на кнопку: Открыть (Open).
Оставляем имя пресета по-умолчанию. OK.
Также при установке различных сборок, может отсутствовать механизм для автоматического размещения видео на аккаунтах соцсетей, остаётся только возможно заливать видео после экспорта на FTP сервер:
Нет например пресета для заливки на YouTube:
Необходимо установить Creative Cloud и ввести Adobe ID. Инструкция здесь.
8K видео становится реальностью, вы можете купить (относительно) доступную камеру, снять и отредактировать 8K (4320p) медиаконтент и экспортировать его.
В сети появляются методики с «лучшими» настройками кодирования для YouTube от различных «гуру», которые провели большую работу, чтобы поделиться своими наработками. Давайте посмотрим, что нам (пользователям Adobe Premiere Pro CC 2021) предлагается:
Работаем с 8K (7680х4320) эпизодом. Формат: H.264. Разрешение: 7680×4320. Частота кадров: 25 fps. Битрейт кодирования: VBR, 1 проход. Целевой битрейт: 120 Мбит/с. Максимальный битрейт: 120 Мбит/с. Аудио формат: AAC. Частота дискретизации: 48000 Гц. Качество звука: Высокое (High). Скорость звука: 512 Кбит/с. Каналы: 5.1 (L, R, C, LFE, Ls, Rs).
Moov atom что это
Прогрессивная развертка (не чересстрочная)
Высокий профиль
2 последовательных B-кадра
Закрытая группа изображений (GOP). GOP равняется половинной частоте кадров.
CABAC (контекстно-адаптивное двоичное арифметическое кодирование)
Переменный битрейт. Ограничений для битрейта не предусмотрено. Рекомендуемые битрейты приведении ниже.
Цветовое пространство: 4.2.0
Помещайте элементы moov atom в начало файла (быстрый старт).
Теперь вопрос к тем, кто разбирается в FFMPEG encoder, как добиться таких настроек в этом кодере?
и качество меня не устроило, возможно я не достиг нужного потому что параметры ffmpeg не настроены правильно и какая-либо опция упущена
Не поскупитесь. Ваши заморочки преодолимы платной программой.
Если жалко денег, то купите графическую оболочку для FFmpeg: iFFmpeg blblTb [14.10.2013 12:02] :
Exact33139 писал(а):
Закрытая группа изображений (GOP). GOP равняется половинной частоте кадров.
Уже смешно. Это всего лишь опорные кадры. Ставьте автомат.
Exact33139 писал(а):
где есть cabac
Это всего лишь стратегия энтропии для материалов h.264 не заморачивайтесь, ставьте автомат.
Качество его очень схоже визуально с транслируемым 720 с опцией 144, только разрешение ниже, также я могу скачать файл лучшего качества мп4 или вебм 720, качество которых на порядок выше, чем новое 720p c режимом 144,и соответствует качеству ютуба до весеннего «обновления», когда еще не было режима 144p, Это разница отчетливо видна в динамичных моментах видео с большим количеством деталей, четкие линии и контуры начинают распадаться на квадраты у флв, в отличии от мп4:
На 720 для мп4 и вебм отводился битрейт 3000 (Кб/c):
large.flv, разрешение которого является 854х480 (409920 пикселей) и битрейт 1291:
Это говорит о том, что гипотетически hd flv с разрешением 1280х720 (921600 пикселей)- качество которого меня интересует и имеет пикселей в 2.25 раз больше, имеет битрейт во столько же раз больший и эта цифра составляет 2900, что аналогично битрейту мп4 файла с качеством без 144p.
Из всего этого можно сделать вывод, что отличия старого ютуба от «нового» в качестве сжатия. Flv файл, что транслируется новым ютубом по умолчанию, вместо трансляции мп4, как это было раньше, до внедрения 144p, при аналогичном битрейте значительно проигрывает мп4 в качестве.
Поиски методов кодирования здесь бесполезны и нужно идти другим путём, а именно выяснить тонкости сжатия hd flv с битрейтом 3000Кб\c, каких оттенков или деталей избегать, чтобы картинка не сыпалась в динамичных моментах и какие фильтры накладывать.
К инструкция по расширенной настройке кодирования, которая написана до внедрения 144p, и которая ранее хорошо работала, теперь нужно добавить еще и фильтры, убирающие те или иные детали и цвета, которых боится flv, чтобы избежать развала картинки на квадраты.
Я не опытен в обработке видео, но думаю более опытные люди поделяться интересными мыслями о тонкостях этого формата и как бороться с его недостатками. blblTb [15.10.2013 12:18] :
1. А кто вам сказал, что внутри контейнера flv не мp4?
Раздражающая маслянистая неестественность «идеального», с вашей точки зрения» видео, лично меня выхихикивает.
как моя специальная утилита не видит hd flv
ну, поставьте FireFox + расширение Easy Youtube Video Downloader Express
2. Тонких ценителей лицезрения волшебных полётов маловато, особенно тех, кто вместо самого процесса игры ставит перед собой целью увидеть как смешной персонаж, плавно воспаряет над хаосом в высоком разрешении.
Я уже много раз вам пытался донести, что суть кинематографа не в бессмысленно наращивании частоты и мегапикселов. Чем плавнее ваше видео, тем меньше сопереживаешь неподдельному страданию и жертвам персонажа.
Exact33139 писал(а):
использовали кодек xvid
Кто вам сказал?
https://dl.dropboxusercontent.com/u/29197369/ForumPosts/Screen-Shot_T.jpg
https://dl.dropboxusercontent.com/u/29197369/ForumPosts/Screen-Shot_B.jpg Exact33139 [15.10.2013 12:54] :
blblTb
[15.10.2013 13:47] :
Exact33139 писал(а):
транслируется через контейнер
Exact33139 писал(а):
повысив качество пикселя
Я один ничего не понял? паша кошляк [15.10.2013 14:49] :
Как победить ошибку вида «moov atom not found» в видеофайлах утилитой Untrunc и сохранить информацию
Всем, кто не смог воспроизвести файл видео с приложения «Камера» Windows 10, посвящена эта статья. UPD1. С фото-, видеокамерами, регистраторами, рядом вебкамер данная статья тоже работает. UPD2. Сведения об устранении указанного в статье бага (незакрытие файла приложением) у автора статьи отсутствуют уже в течение 2 лет.
У автора статьи при работе приложения «Камера» Windows 10 на протяжении нескольких лет «случайно» выходила из строя батарейка ноутбука, и репортажный материал просто улетал в корзину…
Всех, кому необходима помощь с видеоданными, — прошу под кат.
Общим местом этой статьи является использование утилиты ffmpeg. Настоятельно советую ознакомиться с возможностями этой утилиты.
Работа будет проходить под Ubuntu 16.04. Эта утилита в ней есть. Но надо не забывать проверять ее новые версии. Плюс к этому, при работе с картами и винчестерами есть дополнительные проблемы при восстановлении поврежденных файловых систем и файлов. Об этом тоже лучше прочитать специализированные статьи. Считаем, что файл вы смогли достать.
1. Сначала ставим в Ubuntu 16.04 библиотеку libui. В принципе, если вы привыкли работать
с командной строки, действия можно пропустить.
2. Ставим утилиту untrunc по ее инструкции.
Если надо, подключаем интерфейс.
Дальше — два файла — битый и не битый. Привожу скриншоты действий:
Если ставили без gui, то
Практические наблюдения и предупреждения.
Всем успехов в восстановлении ценной информации!
Небольшой справочник по командам:
Usage: untrunc [options] [corrupt.mp4]
general options:
-V — version
-n — no interactive
repair options:
-s — step through unknown sequences
-st — used with ‘-s’
-sv — stretches video to match audio duration (beta)
-dw — don’t write _fixed.mp4
-dr — dump repaired tracks, implies ‘-dw’
-k — keep unknown sequences
—dyn — use dynamic stats
analyze options:
-a — analyze
-i[t|a|s] — info [tracks|atoms|stats]
-d — dump samples
-f — find all atoms and check their lenghts
-m — match/analyze file offset
untrunc — report wrong values
other options:
-ms — make streamable
logging options:
-q — quiet, only errors
-w — show hidden warnings
-v — verbose
-vv — more verbose
Русские Блоги
Введение в формат пакета MP4
Формат упаковки видео относится к тому, как хранятся видеоданные, а формат кодирования видео относится к тому, как исходные видеоданные кодируются в поток двоичных данных. Закодированные видеоданные в итоге сохраняются в виде видеофайла в формате упаковки видео.
Эта статья представляет собой введение в формат упаковки видео MP4. Это в основном вводит значение структуры Atom и данных в Atom.
Файл MP4 состоит из нескольких объектов данных, называемых атомами (или блоками). Каждый атом начинается с четырехбайтовой длины данных (Big Endian) и четырехбайтового идентификатора типа. Длина данных и флаг типа Может быть продлен. Атомы могут быть вложенными, то есть их поля данных могут состоять из нескольких других атомов для получения структурированных данных.
Структура файла MP4
MP4 предназначен для хранения медиа-информации. Базовая структура Atom:
[4bytes atom length] [4bytes atom name] [8bytes largesize, if size ==1] [contents of the atom, if any]
Структура выглядит следующим образом:
Файлы MP4 содержат много атомов, основные атомы и вложенные структуры показаны на рисунке.
Три, типичный пример файла MP4
Файлы MP4 должны иметь ftyp, moov и mdat. Они являются атомами верхнего уровня и не могут быть вложены другими атомами.
ftyp идентифицирует файл MP4 и должен появляться первым.
moov сохраняет основную информацию о видео, mdat сохраняет видео и аудио данные. Порядок этих двух атомов не является фиксированным.
Структура атома moov MP4-файла после mdat:
Поскольку индекс видеоданных сохраняется в moov, для сцен, воспроизводимых онлайн, moov должен находиться в mdat, прежде чем потоковые видеоданные можно будет прочитать.
Структура атома moov MP4-файла перед mdat:
2、FREE
free не является обязательным. Если он существует, он обычно отображается между moov и mdat, то есть moov-free-mdat.
Все данные в free обычно равны 0, а их роль эквивалентна заполнителю. При съемке видео в режиме реального времени данные moov выделяются moov для использования.
Поскольку устройство не может заранее знать размер видеоданных при записи видео, если moov предшествует mdat, так как данные съемки mdat будут увеличиваться, данные moov также будут увеличиваться. Пробел, продолжайте перемещать данные mdat назад, чтобы освободить пространство moov.
3、MOOV
Moov в основном хранит информацию о времени мультимедиа, информацию о треках и индекс медиа.
3.1 Информация о времени медиа
В moov-mvhd есть шкала времени, которая дает общую гранулярность времени в форме 1 / n секунд и продолжительность каждого трека в moov-trak-tkhd. ;
3.2 информация о треке
Moov обычно содержит два трека, видеоиндекс и аудио индекс.
3.2.1 тип трака
Тип trak указан в moov-trak-mdia-hdlr, включая «vide», «soun» и «hint».
3.2.3 Указатель информации
moov-trak-mdia-minf-stbl более важен: он хранит информацию и информацию индекса, необходимые для декодера. Все следующие атомы являются дочерними для stbl Atom.
stsd хранит информацию описания мультимедиа, требуемую декодером.
stss, Sync Sample Atom
идентифицирует ключевые кадры в медиапотоке и предоставляет точку произвольного доступа. Каждая запись идентифицирует ключевой кадр.
Номера ключевых кадров расположены в порядке возрастания. Если Atom не существует, все кадры являются ключевыми.
Синхронизация макета таблицы образцов
Структура записи таблицы Time-to-Sample
Если последовательные кадры имеют одинаковую длительность, они будут помещены в одну и ту же запись. Если все кадры имеют одинаковую длительность, в Atom есть только одна запись.
STTS экземпляр
На следующем рисунке показано от 9 до 3 записей. Следует отметить, что запись и чанк здесь не соответствуют. Например, 4, 5 и 6 кадров могут быть в одном и том же фрагменте, однако, поскольку их длительности различны, длительность 4 кадров равна 3, а длительность 5, 6 кадров равна 1. Поэтому они хранятся в разных записях.
stco/co64, Chunk Offset Atom
stco / co64 дает смещение каждого фрагмента данных в файле. Каждая запись Chom Offset Atom дает смещение каждого фрагмента в файле.
Если тип атома смещения блока является stco, то сохраненное смещение составляет 32 бита, если это co64, то сохраненное смещение составляет 64 бита. Макет показан на рисунке.
макет таблицы смещения чанка
Следует отметить, что в этом атоме дается только смещение каждого куска, а смещение каждого сэмпла не дается. Поэтому, если вы хотите получить смещение для каждой выборки, вам также необходимо использовать таблицу размеров выборки и таблицу выборки к чанку.
stsc, Sample-To-Chunk Atom
stsc дает фрейм данных, содержащийся в каждом блоке данных. Блок может содержать один или несколько кадров. Каждый чанк будет иметь разный размер, и кадры в каждом чанке также будут иметь разные размеры.
Запись хранит номер первого чанка, количество кадров, содержащихся в каждом чанке, и идентификатор описания кадра.
Макет записи таблицы для Sample-To-Chunk Atom
Каждая запись содержит набор чанков, где каждый чанк имеет одинаковое количество кадров. Более того, каждый кадр в этих чанках должен использовать одно и то же описание кадра.
Если количество кадров или описание кадра в чанке изменяется, необходимо создать новую запись.
Если все чанки содержат одинаковое количество кадров и описания кадров, существует только одна запись.
экземпляр STSC
На рисунке показано, что существует не менее 5 блоков, каждый из первого и второго блоков содержит 3 кадра, а ID описания кадра равен 23, каждый из третьего и четвертого блоков содержит 1 кадр, кадр Идентификатор описания равен 23, пятый и последующие фрагменты содержат 1 кадр, а идентификатор описания кадра равен 24.
Для последней записи требуется специальная обработка, поскольку невозможно определить, когда она закончится.
stsz, Sample Size Atom
таблица размеров выборки
3.3 пользовательские данные
Пользовательские данные хранятся в udta. Например, метаданные, используемые iTune, хранятся в udta.
3.4 Данные о расширении пользователя
Расширение Atom реализовано с помощью uuid. Пользователи могут использовать Atom типа «uuid» для определения своего собственного формата данных с 16 конкретными байтами в качестве идентификаторов.
4、MDAT
Все данные мультимедиа хранятся в mdat единообразно, нет слова синхронизации и разделителя, и доступ к ним возможен только в соответствии с индексом.
Расположение mdat более гибкое. Это может быть до или после moov, но оно должно соответствовать информации в stbl.
Кроме того, при записи файла mp4 для mdat Atom обычно сначала заполняют размер Atom 0. После того, как данные записаны, вернитесь и укажите конкретный размер.
5. Другое АТОМ
5.1、THMB
Atom moov @ 13840405 of size: 355190, ends @ 14195595
…….
Atom udta @ 14146330 of size: 49265, ends @ 14195595
Atom thmb @ 14146338 of size: 49197, ends @ 14195535
Atom cprt [zho] @ 14195535 of size: 30, ends @ 14195565
Atom perf [zho] @ 14195565 of size: 30, ends @ 14195595
структура thmb:
atom size (49197)
atom type (thmb)
thmb size (0)
thmb type (jpeg)
thmb data
V. Практические сценарии применения
1. Переместите moov в конце файла в начало файла.
Для воспроизведения потокового мультимедиа, если позиция mdat находится перед moov, возникнут проблемы с воспроизведением файла посредством потоковой передачи, поскольку вначале невозможно получить информацию о мультимедиа и индекс файла.
В этом случае требуется предварительная обработка видео и перемещение moov в начало файла. Moov Atom можно легко найти, пройдя Atom.
Следует отметить, что перемещение moov в заголовок файла требует изменения stco / co64 в moov. Поскольку здесь сохраняется смещение данных чанка, после перемещения moov необходимо обновить stco / co64 в соответствии с новой позицией moov.
Структура stco / co64 выглядит следующим образом:
Смотрите библиотеку с открытым исходным кодом Python qtfaststart.
2. Сплит MP4 файлы
В службе видео по запросу файл MP4 необходимо разделить на несколько фрагментов. В это время необходимо получить ключевые кадры, временные рамки вырезания, обновления moov и файлы отдельных фрагментов.
Инструменты, связанные с приложением View Atom
Windows: mp4info, проанализируйте и отобразите атом файла
Linux: AtomicParsley, написанный на C ++, анализирует атом файла
Библиотека с открытым исходным кодом
qtfaststart, написанный на python, если moov находится в конце файла, перейдите в начало файла
https://github.com/danielgtaylor/qtfaststart.git
@ [TOC] (напишите здесь название пользовательского каталога)
Добро пожаловать в редактор Markdown
Здравствуйте! Это ваше первое использованиеРедактор уценок Страница приветствия показана. Если вы хотите узнать, как использовать редактор Markdown, вы можете внимательно прочитать эту статью, чтобы понять основной синтаксис Markdown.
Новая смена
У нас есть некоторые расширения и синтаксическая поддержка редактора Markdown.В дополнение к стандартным функциям редактора Markdown, мы добавили следующие новые функции, которые помогут вам писать блоги с ним:
Функциональные ярлыки
Revoked: Ctrl/Command + Z
Повторить: Ctrl/Command + Y
Жирный шрифт: Ctrl/Command + B
Курсив: Ctrl/Command + I
Заголовок: Ctrl/Command + Shift + H
Неупорядоченный список: Ctrl/Command + Shift + U
упорядоченный список: Ctrl/Command + Shift + O
Контрольный список: Ctrl/Command + Shift + C
Вставьте код: Ctrl/Command + Shift + K
Вставить ссылку: Ctrl/Command + Shift + L
Вставьте изображение: Ctrl/Command + Shift + G
Правильно создавать заголовки, чтобы помочь с созданием каталога
Введите 1 раз напрямую # И нажмите space После этого будут сгенерированы заголовки уровня 1.
введите 2 раза # И нажмите space После этого будут сгенерированы заголовки уровня 2.
И так далее, мы поддерживаем заголовки уровня 6. Полезно использовать TOC Создать идеальный каталог после синтаксиса.
Как изменить стиль текста
Подчеркните текст Подчеркните текст
Жирный текст Жирный текст
2 10 Результат 1024.
Вставьте ссылку и картинку
Изображение:
Картинка с размером:
Центрированная картинка:
Центрированное и размерное изображение:
Конечно, для удобства пользователей мы добавили функцию перетаскивания изображений.
Как вставить красивый кусок кода
Создайте список, который работает для вас
Создать таблицу
Простая форма создается так:
| проект | Value |
|---|---|
| компьютер | $1600 |
| Мобильный телефон | $12 |
| катетер | $1 |
Содержание центра, слева, справа
| Первый столбец | Второй столбец | Третий столбец |
|---|---|---|
| Центрировать первый столбец текста | Правильный текст во втором столбце | Третий столбец текста слева |
SmartyPants
SmartyPants преобразует знаки препинания ASCII в «умные» печатные знаки препинания HTML. Например:
Создать собственный список
Как создать сноску
Комментарии также важны
Markdown преобразует текст вHTML 。
KaTeX математическая формула
Вы можете использовать LaTeX для рендеринга математических выражений.KaTeX:
Вы можете найти больше информацииLaTeX Математическое выражениеhere.



































