Ffserver windows трансляция с вебкамеры

Introduction

If you need to ​ stream your audio/video content over the internet, you’ll usually need a streaming (broadcasting) server, one of which is ffserver. It is able to collect multiple input sources (usually ffmpeg applications) and transcode/remux/broadcast each of them using multiple output streams. The simple diagram is shown on the image below:

Various input sources (ffmpeg applications) can be used to «feed» the broadcasting server (ffserver) with multimedia content that will be distributed to multiple clients for viewing. The purpose of the above image is to visually show the ability to separate parts of your streaming system into pieces that can be deployed around the world, allowing you to broadcast various live events without the need to change the structure of your streaming media system.

Let’s take a closer look of ffserver, to better describe its possibilities. Consider the following image:

There are several elements shown on the image. Let’s name them all first:

  • Input sources (I)
  • Feeds (F)
  • Streams (S)
  • Media players (P)

Input sources

These elements are not part of internal structure of ffserver tool, but rather represent external applications (usually ffmpeg), which can send audio/video streams to ffserver that will be distributed (broadcast) to all the viewers (media players). Since ffmpeg is mostly used as an input source, we’ll describe it here in this document.

Input sources will connect to ffserver and bind themselves with one or more feeds if those feeds are not bound with some other input source at that moment. Binding one input source to multiple feeds is possible and makes sense only if the input source can produce different stream input for each feed it is bound to. It’s useless for the input source to provide the same stream input to several feeds, since ffserver already has got a way of associating a single feed to multiple output streams.

Feeds

Feed element is an internal part of ffserver which has a purpose to associate one input source with one or more output streams. The possibility to associate a feed with more output streams is useful when you want to stream one input source (for example, your webcam with audio) using several different output formats (for example, streaming a full HD video and a small-size preview video for mobile phones) at the same time. Shortly speaking, each feed element logically represents each of your input sources. It can be considered as an «input jack» of ffserver, to which you connect your audio/video sources.

Streams

A stream element is internal part of ffserver and represents a connection point for all your viewers who wish to get a specific stream. For example, if you want to stream one full HD video and a small-size preview video for mobile phones, you will create one feed element (to connect your input to) and associate it with two stream elements (which will define different frame size, encoding type and/or output format). Each stream element can handle multiple connecting clients, just like one web server can handle multiple web clients. It can be considered as an «output jack» of ffserver, to which your viewers (media players) can connect to view your audio/video stream. The obvious difference between a feed element and a stream element (between input/output jack) is that a single stream element can handle multiple connections with viewers, while a single feed element is always connected to only one input source.

Media players

Media player elements are not internal part of ffserver. They just represent your viewers from the «outside world» that are connecting to the various stream elements to view your multimedia content. Some of the popular media players are: ffplay, ​ VLC, ​ mpv, ​ Windows Media Player, etc.

Running ffserver

To be able to successfully start ffserver, you’ll need a valid configuration file first. Once you create a valid config file, you can start ffserver simply by running the following command:

Depending on your configuration file, your ffserver will start or not 🙂 But more often it will not start until you debug all the issues that usually occur, including syntax errors, so you’ll most probably want to run your ffserver in debug mode with «-d» option, until you sort out everything, like this:

You can always get a full list of options with:

When you finally build a valid configuration file, you’ll want to run your ffserver in the background (as a daemon), which can be accomplished using either a trailing ampersand character (&) in a shell command or more conveniently you can comment out » NoDaemon » directive inside your config file (works on Windows too).

Connecting your input sources

Once your ffserver is up and running, it’s time to connect input sources to it. Without input sources, your ffserver is not going to broadcast anything to the outside world and will be pretty much useless. So, let’s see how we can connect input sources to ffserver. The simplest way is to use the ffmpeg tool and the general syntax for such command is:

Of course, if you want to use one input source (ffmpeg) and bind it to multiple feeds (if you like to have only one application started), you might use:

but, keep in mind that, if that input source crashes, all its bound feeds will become unavailable. So it’s a good practice to use one input source (ffmpeg) pear each feed (1-1).

The parameter » » has got the following form:

All these things are defined in your ffserver configuration file:

  • — using the » BindAddress » directive
  • — using the » Port » directive
  • — using the » » block
Читайте также:  Переустановить windows виста ноутбуке

Let’s assume that we want to stream our webcam video + audio to our friends. We will simply run an ffmpeg command line that will capture our webcam video and audio input and forward it to ffserver. The command line will look something like this:

This is the same thing as this:

but it looks better and makes it more clear to understand each part of the command line.

  • The first part » -f v4l2 -s 320×240 -r 25 -i /dev/video0 » represents the first input for ffmpeg and captures our webcam video. For more info, you can read more about How to capture a webcam input.
  • The second part » -f alsa -ac 1 -i hw:0 » represents the second input for ffmpeg and captures our audio, depending on our system audio configuration. For more info, you can read more about Capturing audio with FFmpeg and ALSA.
  • The last, but not the least important, part » http://localhost:8090/feed1.ffm » represents the feed URL, which tells ffmpeg to connect to ffserver and send it the audio + video streams for broadcast. In this example we used the hostname «localhost» which means that everything is running on our computer, but if you need to feed the live online ffserver, you’ll need to change the «localhost» to the real host name or IP address of your ffserver computer. Also make sure that your feed name ends with » .ffm » and if it’s not the case, then add » -f ffm » before your feed URL, to manually specify the output format (because ffmpeg won’t be able to figure it out automatically any more), like this » -f ffm http://localhost:8090/blah.bleh «.

As soon as you type the command above, you should see ffmpeg displaying some statistics about your input streams and counting output frames, which is a pretty good sign that everything works (so far).

For this example, you would need at least the following things defined in your config file (three dots «. » represent the other data that is irrelevant for this topic):

Viewing your streams

If you’ve done all the steps so far without errors, you’re now ready to view your streams. The simplest way to do so is to use ffplay to connect to ffserver and view a specific stream. The general syntax for such command is:

The parameter » » has got the following form:

All these things are defined in your ffserver configuration file:

  • — using the » BindAddress » directive
  • — using the » Port » directive
  • — using the » » block

For example if you have appropriate stream element defined in your ffserver configuration file, you could type:

and your stream should appear (depending on the encoding used and caching enforced) relatively shortly in a matter of seconds. In this example we used the host name «localhost» which means that everything is running on our computer, but if you need to view streams from the live online ffserver, you’ll need to change the «localhost» to the real host name or IP address of ffserver computer.

For this example, you would need at least the following things defined in your config file (three dots «. » represent the other data that is irrelevant for this topic):

Creating the configuration file

It would be very wise to start off reading the sample configuration file below. It is self-documented with a lot of comments and it is a good starting point for beginners, since it contains various examples too. Also, refer to man ffserver and ffserver -h or download the archived documentation: ​ HTML or ​ PDF. In general, the configuration file is consisted of global directives, list of feed elements, list of stream elements and a specification of a special status stream element, which is used to provide a way for you to view the status of all your running streams.

WebRTC streamer for V4L2 capture devices and RTSP sources.

Для организации трансляции нам потребуется:

  • Linux
  • FFmpeg (включает в себя ffserver)

Теория

FFmpeg — это набор свободных библиотек с открытым исходным кодом, которые позволяют записывать, конвертировать и передавать цифровое аудио и видео в различных форматах. Он включает libavcodec, библиотеку кодирования и декодирования аудио и видео и libavformat, библиотеку мультиплексирования и демультиплексирования в медиаконтейнер. Название происходит от названия экспертной группы MPEG и «FF», означающего «fast forward».

ffserver идёт в комплекте с ffmpeg и выполняет роль медиа-сервера — получает видеопоток от ffmpeg, который может быть запущен на другой машине, и раздаёт его счастливым пользователям.
Каждый получаемый поток называется Feed’ом (далее будет просто фид). Таких потоков может быть несколько, так же как и отдаваемых (выходных).
FFmpeg у нас будет захватывать видео с веб-камеры или читать из файла.

Практика

Сначала настроим ffserver, чей конфиг лежит в /etc/ffserver.conf:

  1. Port 8090
  2. BindAddress 0.0.0.0
  3. MaxClients 100
  4. MaxBandwidth 20000
  5. NoDaemon
  6. # Фид, надо запомнить feed.ffm, он нам потребуется при запуске ffmpeg
  7. File /tmp/feed.ffm
  8. FileMaxSize 3M
  9. # Ранее объявленный фид
  10. Feed feed.ffm
  11. Format flv
  12. VideoCodec flv
  13. VideoFrameRate 30
  14. VideoBufferSize 80000
  15. VideoBitRate 200
  16. # Качество видео от 1 до 31, 1 == отлично 31 == фи!
  17. VideoQMin 1
  18. VideoQMax 5
  19. # Разрешение, везде должно быть одинаково!
  20. VideoSize 352×288
  21. PreRoll 1
  22. # Если у вас есть микрофон, или вы транслируете видео со звуком, закомментируйте эту строчку
  23. Noaudio
  24. # Флешка test.swf для просмотра трансляции
  25. Feed feed.ffm
  26. # Будет запускаться в Adobe Flash Player
  27. Format swf
  28. VideoCodec flv
  29. VideoFrameRate 30
  30. VideoBufferSize 50000
  31. VideoBitRate 100
  32. VideoQMin 1
  33. VideoQMax 5
  34. # Разрешение, везде должно быть одинаково!
  35. VideoSize 352×288
  36. PreRoll 0
  37. # Если у вас есть микрофон, или вы транслируете видео со звуком, закомментируйте эту строчку
  38. Noaudio

Пускаем ffserver:
$ ffserver

Пускаем ffmpeg:
$ ffmpeg -s 352×288 -r 30 -f video4linux2 -i /dev/video0 http://localhost:8090/feed.ffm
-s разрешение, указанное в конфиге ffserver, -r количество кадров/секунду, -f формат, -i путь к камере (или к видео-файлу), http://localhost:PORT/FEED это адрес, где ffserver будет ждать наш поток

PS: если выдаст ошибку, то можно попробовать формат v4l (-f video4linux)

Открываем в браузере http://localhost:8090/test.swf и широко улыбаемся:)

Для отправки видео поменяем параметр -i на путь к файлу, уберём -f (ffmpeg сам определит формат файла):
$ ffmpeg -s 352×288 -r 30 -i

Читайте также:  Windows не удалось автоматически обнаружить параметры прокси этой сети com

Ну а что бы вставить нашу флешку в html-страницу используем следующий код:
src = «http://localhost:8090/test.swf» width = «550» height = «400» > / embed> .

И относительно проигрывания потокового видео: попробуйте запустить обычный avi — получите ругань, что флеш поддерживает тоько два кодека. А вот если указать каким кодеком выводить — будет работать, но будет жрать процессор.

Список аудио карт для осуществления записи звука
sudo arecord -l

Пример для записи звука без указания канала и с ним
Launch ffmpeg -s 640×480 -f video4linux2 -i /dev/video0 -r 30 -f alsa -i hw:0,0
Launch ffmpeg -s 640×480 -f video4linux2 -i /dev/video1 -r 30 -f alsa -ac 1 -i hw:0,0

Это пытаются трансляция видео источников с помощью технологии webrtc, используя простой механизм.

Сигналка с webrtc осуществляется через http-запросы:

/звонок : отправить предложение и получить ответ

/слайдера : закрыть вызова

/addIceCandidate : добавить кандидата

/getIceCandidate : попасть в список кандидатов

Список запросов http API доступен через /помочь.

  • для x86_64 на Ubuntu надежный
  • для ARM crosscompiling с ССЗ-организацией linaro-АРМ-ОС Linux-gnueabihf-raspbian-х64 (эта сборка работает на Raspberry Pi и NanoPi Нео)

В настоящее время существует 2 опирается на Трэвиса ки :

FFmpeg и FFserver для Windows — краткая инструкция

История FFmpeg

В 2000 году программист с ником Gerard Lantau выложил для всеобщего использования исходники проекта FFmpeg. За годы концепция осталась прежней:

  • Деление на программы FFmpeg для кодирования видео и FFserver для организации потокового вещания.
  • Максимально быстрое кодирование звука и видео.

В то время 500 мегагерц в компьютере считались нормой, требовалась максимальная оптимизация, поэтому в FFmpeg своя реализация видеокодеков, оптимизированная для скорости. Это нужно и сейчас, особенно на серверах видеохостингов, где идёт постоянная борьба за снижение энергопотребления, чтобы процессоры не грелись.

FFmpeg прочно стоит на ногах — почти каждый день вносятся правки в исходный код. Добавляются новые компоненты. Например, плеер FFplay и утилита для получения информации FFprobe.

Где скачать FFmpeg и FFserver

FFmpeg разрабатывается под Linux. Если на сайте видите окошко с трансляцией видео — 9 шансов из 10, что оно работает благодаря FFmpeg и FFserver.

Версия FFmpeg (и FFserver) для Windows тоже существует, но часть функциональности будет недоступна. Впрочем, это не мешает работать видеоконвертеру MediaCoder (www.mediacoderhq.com) и плееру PotPlayer.

Версии для Linux найдете на ffmpeg.org, я же расскажу про FFmpeg для Windows. Она делится на две части: FFmpeg и FFserver.

FFmpeg для Windows вы найдете здесь: http://ffmpeg.zeranoe.com/builds/

На выбор есть 32- и 64-битные версии. Для кодирования видео выбирайте 64-битную Static-версию (ссылка вида «Download FFmpeg git-*** 64-bit Static«).

Если нужно организовать видеотрансляцию с, например, IP-видеокамеры, желательна 32-битная версия FFmpeg, с 64-битной я заметил проблемы — программа закрывалась сама по себе. Возможно, потому что FFserver для Windows — 32-битный, есть несовместимость.

FFserver на Windows тоже существует, хотя об этом мало кто знает. Программу трудно скомпилировать, потому что используется много специфичного для Linux кода. Разработчики системы видеонаблюдения Xeoma оказались молодцы, потому что выложили свой FFserver для Windows на своем сайте: http://felenasoft.com/xeoma/ru/ffserver/ Не забудьте скачать cygwin1.dll оттуда же.

Про FFserver в Интернете много инструкций. Они написаны на примере Linux-версии, но прекрасно работают под Windows. Единственное отличие — файл ffserver.conf должен лежать не в папке /etc, а в одной папке с ffserver.exe, cygwin1.dll и ffmpeg.exe.

Как установить FFmpeg

1. Скачайте по ссылке выше Static-версию. Это архив, для распаковки потребуется программа 7-zip (7-zip.org).

2. Создайте на диске C: папку ffmpeg и распакуйте туда архив.

Для установки ffmpeg этого достаточно. Советую выполнить пункт 4 для удобства в будущем.

3. Если нужно настроить трансляцию, в папку c:\ffmpeg\bin распакуйте ffserver и положите файлик cygwin1.dll.

4. Чтобы в командах не писать каждый раз полный путь к программе, можно добавить его в переменную PATH: Панель управления — Система — Дополнительные параметры системы — вкладка Дополнительно — Переменные среды — в конце строки переменной Path добавьте «;c:\ffmpeg\bin» без кавычек. Если там было пусто (что не совсем нормально), то «c:\ffmpeg\bin«, т.е. без точки с запятой в начале.

Потом перезагрузите компьютер, чтобы изменения вступили в силу.

Вы можете пропустить четвертый шаг, но потом вместо команд ffmpeg и ffserver придется писать полный путь «c:\ffmpeg\bin\ffmpeg.exe» и «c:\ffmpeg\bin\ffserver.exe».

Как пользоваться FFmpeg

На главной странице FFmpeg красуется надпись:

Converting video and audio has never been so easy (Перевод: Никогда конвертирование видео и звука не было таким простым)

Человек, не знакомый с командной строкой, будет в ступоре. Куда вводить команду?

FFmpeg хорош для тонких задач, но, если не хотите заморачиваться, воспользуйтесь бесплатной XMedia Recode или платной Movavi Video Converter. .

В папке ffmpeg\doc собрано много примеров по использованию компонентов, все команды можно посмотреть там.

Примеры

Имена файлов у вас будут свои. Если есть пробелы или на русском — обрамляйте имена в кавычки.

Отобразить информацию о файле:

или ffprobe video.mp4

Пережать видео avi в mp4:

Пережать mov в flv и изменить разрешение:

Пережать видео в webm среднего качества, звук формата OGG:

Пережать видео кодеком MPEG4, звук — mp3, контейнер — avi:

Сохранить звуковую дорожку из видео в отдельный файл:

Добавить звуковую дорожку к видео («-acodec libmp3lame» можно выкинуть, тогда ffmpeg сам решит, как кодировать звук):

Добавить звуковую дорожку без перекодирования видео (сохраняет качество, работает быстро):

Пережать видео в формат

Сохранить кадр на второй секунде как отдельную картинку:

Убрать дрожание камеры и сохранить в out.mp4:

Структура

Как видно из примеров, команды ffmpeg имеют структуру:

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

Команды

Информационные (чтобы узнать возможности установленной версии)

-L
Показать текст лицензии.

-h, -?, -help, —help
Список доступных команд.

-version
Узнать версию ffmpeg.

-formats
Показать список доступных форматов контейнеров (не кодеков!).

В Windows не хватит строк в командной строке для показа всего списка, для исправления откройте свойства окна и на вкладке «Расположение» поставьте высоту буфера экрана в 500. В списке буквы D и E означают поддержку декодирования и кодирования.

-codecs
Список доступных кодеков. Кроме интуитивно понятных D и E (Decoder для «чтения» и Encoder для кодирования), видны следующие обозначения:
V — кодек для видео, A — для звуковых дорожек, S — субтитров, I — только для кодирования I-фреймов, L — кодек сжимает с потерями данных (большинство), S — без потери данных (сохраняет качество, сжимает слабо).

-bsfs
Показать поддерживаемые bitstream filters (фильтр потока данных), которые нужны в ряде случаев для правильной обработки потока данных.
-protocols
Показать доступные протоколы. Из выдаваемого списка понятно, что в качестве входных данных может использоваться RTMP поток (видеотрансляция) и многое другое, не только файлы. Как выходные — тоже.
-filters
Доступные фильтры видео и аудио. В FFmpeg их громадное количество. Кроме банальных поворота и настроек яркости, в FFmpeg есть расширение стереобазы, генерирование фракталов и прочее, прочее. Подробные инструкции — в doc/ffmpeg-filters.html.

-pix_fmts
Доступные цветовые форматы. FFmpeg понимает громадное количество цветовых пространств. Полезно для тех, у кого оборудование выдает странные цвета.

Основные опции

-loglevel значение или -v значение

Уровень логгирования. От минимума — quiet до максимально подробного debug. Полный список: quiet, panic, fatal, error, warning, info, verbose, debug. Полезно, если в процессе кодирования видео происходят ошибки и нужно узнать подробности.

-f значение (mp4, avi, mkv, gif и т.д.)

Указать определенный формат (контейнер) файла. Обычно FFmpeg выбирает по расширению выходного файла, но можно переназначить.

-i путь_до_файла

Команда для указания входящего файла или потока (например, rtmp://адрес для захвата потокового видео).

-y
Перезаписывать уже существующий выходной файл без запроса.

-ss время

Указывает, с какого времени нужно кодировать видео/аудио. Формат в виде «чч:мм:сс». Подробнее: https://trac.ffmpeg.org/wiki/Seeking

-t время

Указать, до какого времени нужно кодировать видео/аудио. Вместе с предыдущей командой удобно использовать для вырезания отрезка видео.

-fs размер
Лимит выходного файла. Например, при -fs 10M кодирование останавливается, как только выходной файл станет 10 Мб размером. Поддерживаются K, M, G (килобайты, мегабайты и гигабайты).

Опции кодирования видео

-b значение
Устанавливает битрейт видео. Выше битрейт — лучше качество и больше размер файла. Указывайте в конце цифры K или M, чтобы программа понимала, в килобитах/сек или мегабитах/сек значение.

-vframes значение

Количество кадров, которые нужно кодировать.

-r значение
Указание частоты кадров.

-s размер

Указание, в каком разрешении кодировать видео. Например, 1920×1080 для FullHD видео на выходе. FFmpeg понимает буквенные сокращения (vga, hd480, hd720, hd1080 и другие).

-aspect соотношение_сторон

Указать соотношение сторон видео (4:3, 16:9 or 1.3333, 1.7777 и т.д.). Как известно профессионалам, в видео пиксели могут быть прямоугольными.

-croptop значение, -cropbottom значение, -cropleft значение, -cropright значение

Обрезка количества пикселей видео сверху, снизу, слева или справа.

-padtop значение, -padbottom значение, -padleft значение, -padright значение

Добавление границы видео сверху, снизу, слева или справа.

-padcolor hex_color

Цвет границы в шестнадцатеричном формате (#000000 — черный, #FF0000 — красный и т.д.).

-vn
Не кодировать видео.

-bt значение

Значение задает максимальное отклонение от указанного битрейта. Может не работать, в зависимости от кодека.

-maxrate битрейт

Указывает максимальное значение битрейта. Требует указания размера буфера через -bufsize.

-minrate битрейт

Минимальный битрейт у видео. Часто используется для принудительного задания определенного битрейта:

ffmpeg -i video.avi -b 4000K -minrate 4000K -maxrate 4000K -bufsize 1835k video-out.mp4

-bufsize размер

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

-vcodec кодек

Выбор кодека (см. команду -codecs для списка кодеков). Можно указать copy, тогда FFmpeg будет копировать видеопоток без перекодирования.

-sameq

Сохранять качество исходной картинки/звука. Это не то же самое, что -vcodec copy. Сохраняется качество видео, кодек может быть любым, видеодорожка перекодируется.

-pass n

Для многопроходного кодирования видео. Указывает, какой делать проход (1 или 2). Префикс имени файла со статистикой указывается командой -passlogfile значение.

Можно отключить обработку звука при первом проходе, чтобы экономить время и ресурсы:
ffmpeg -i video.mp4 -vcodec libxvid -pass 1 -an -f rawvideo -y NUL

Опции звука

-aframes количество

Сколько фреймов звука (да, у звука есть кадры!) нужно кодировать.

-ar частота

Указание частоты звука (по умолчанию 44100 Гц).

-ab битрейт

Битрейт (по умолчанию = 64K).

-aq значение

Указание качества (зависит от кодека, применяется при переменном битрейте).

-ac число

Количество аудиоканалов (по умолчанию 1).

-an

Не кодировать звук.

-acodec кодек

Указание кодека для звука. Значение copy позволяет копировать звуковую дорожку без перекодирования

-newaudio

Добавление еще одной звуковой дорожки. Ее параметры указываются до команды -newaudio:

ffmpeg -i file.mpg -vcodec copy -acodec ac3 -ab 384k test.mpg -acodec mp2 -ab 192k -newaudio

Субтитры

-scodec кодек

Кодек для субтитров (copy — для прямого копирования).

-newsubtitle

Добавление еще одних субтитров.

-slang код

Указание языка субтитров в стандарте ISO 639 (3 буквы).

-sn

Другие команды

-threads количество

Количество потоков для кодирования видео. Опцию следует применять только на многоядерных ПК и то с оглядкой, читая документацию к выбранному кодеку.

-vsync значение

Синхронизация кадров. Значения:

0 — каждый кадр передается из входного в результирующий файл с той меткой времени, которая у него была.

1 — кадры будут дублироваться или удаляться, чтобы сохранить требуемую частоту кадров.

2 — кадры будут пропускаться или удаляться, чтобы сохранить требуемую частоту кадров.

-1 — значение по умолчанию. FFmpeg выбирает сам между методами 1 и 2.

С помощью команды -map можно указать, что к чему будет подстраиваться. Подробности: https://trac.ffmpeg.org/wiki/Map

-async кадры_в_секунду

Выбор метода синхронизации звука. Чтобы звук и видео совпадали по времени, аудиодорожка может растягиваться и сжиматься. Значение 1 скорректирует звуковую дорожку только в самом начале по принципу «дальше будь что будет».

-copyts

Применяется для принудительного копирования всех временных меток из исходного файла. Полезно в случае, если начало видео — не 00:00, а что-то другое и это нужно сохранить.

-shortest

Когда самый короткий входящий файл закончился, прекращение кодирования.

Еще команд?

Команды для FFmpeg смотрите здесь:

http://help.ubuntu.ru/wiki/ffmpeg (на русском).

https://ffmpeg.org/ffmpeg.html (официальная документация).

Для кодирования кодеком x264, который сейчас приобрел популярность, гляньте это:

http://wiki.rosalab.ru/ru/index.php/FFmpeg (на русском, есть примеры).

Почему команд так много?

Они нужны для полного контроля процесса обработки файлов с видео и звуком.

Большинство пользователей конвертируют видео, не понимая, что важен не только кодек для сжатия, но и его параметры. Есть нюансы, которые непросто осознать начинающим пользователям. Например, файл с расширением «mp4» не обязательно содержит в себе видео с кодеком MPEG4.

Если есть какие-то вопросы по FFmpeg — спрашивайте в комментариях. Помогу, чем смогу.

Читайте также:  Установочная флешка средствами windows
Оцените статью