Операционная система linux h 264

Операционная система linux h 264

Если у вас не работает один из способов авторизации, сконвертируйте свой аккаунт по ссылке

Авторизуясь в LiveJournal с помощью стороннего сервиса вы принимаете условия Пользовательского соглашения LiveJournal

На сегодняшний момент самым поддерживаемым железом кодеком для высококачественного видео является H.264 (AVC). Самая лучшая программа кодирования видео в H.264 — это x264 (лучшая в смысле качества получаемого видеопотока).

Но исходный видеопоток для кодирования H.264 надо как-то получить. Очень удобная программа для получения видеопотока, по моему мнению — это Avisynth. Точнее, это даже не программа, а библиотека, с которой могут (или не могут) работать другие программы. С помощью Avisynth можно легко делать подвыборку кадров, наложение и склеивание видеопотоков и пр. Делается это написанием соответствующих скриптов. Прелесть Avisynth состоит в том, что подобные преобразования видеопотоков происходят без потери информации: Avisynth не применяет сжатия с потерями к кадрам, предоставляя заниматься этим кодировщику.

Одно неудобно: Avisynth существует только под Windows. А нам это чудо не нужно: нам надо кодировать под Linux. Но Avisynth всё равно хочется использовать. Ведь Avisynth, на самом деле, соответствует UNIX-way, а то, что он написан для Windows — это ошибка природы ( шутка ).

  1. Запустить Windows в виртуалке и кодировать там. Этот способ не очень производительный, как показала практика
  2. Запускать виндовую версию x264 (x264.exe) через wine прямо под Linux. Этот способ существенно быстрее предыдущего, и я им пользовался до недавнего времени. Для удобства лучше всё-таки сначала установить через виртуалку на разделяемой папке программу MeGUI, которая скачивает последние версии всех нужных для подготовки видеопотока программ, и в которой можно подготовить простой вариант скрипта для Avisynth
  3. Использовать родную, линуксовую версию x264, собранную вручную с дополнительными оптимизациями под наш процессор. Этот способ показал наивысшую производительность. О нём я и расскажу ниже.

Этап 1. Подготовка видеопотока

Сначала нужно написать скрипт Avisynth и проверить его работу. Для этого рекомендую установить в виртуалке на разделяемую папку программу MeGUI, через которую также установить все программы для подготовки видеопотока (например, DGIndex для получения видеопотока из DVD для использования в AviSynth). Я не буду тут подробно описывать механизм получения рабочего скрипта Avisynth: это неоднократно описывалось в интернетах. Предположим, что вы, наконец, получили нужный вам скрипт и назвали его v.avs.

Этап 2. Установка Avisynth в Linux

Мы будем использовать Avisynth при помощи wine, поэтому нам придётся установить его и под Linux, а не только в виртуалке. Это делается очень просто: достаточно запустить инсталляционную программу через wine.

Для работы Avisynth из-под wine потребуется дополнительно установить некоторые библиотеки из Visual C++ 6. Это делается так:

Кроме того, некоторые плагины для Avisynth требуют наличия некоторых других библиотек, так что можно сразу установить еще и это:

$ winetricks vcrun2003 $ winetricks vcrun2008 $ winetricks vcrun2005

Этап 3. Установка x264 в Linux

Читайте также:  Path desktop file linux

Теперь установим кодировщик в H.264 — программу x264. В различные дистрибутивы Linux эта программа уже включена, и она нам в принципе подойдёт. Но обычно в дистрибутивы входит не самая последняя версия x264, да и собрана она с недостаточными оптимизациями. Поэтому лучше скачать исходные тексты x264 и собрать эту программу самостоятельно. Я не буду описывать процесс сборки x264: просьба погуглить самостоятельно. make install делать нет необходимости: можно сразу после сборки запускать собранный бинарник x264 из каталога, где он собирался. При сборке советую использовать опцию GCC -march, указав именно ваш тип процессора. Также полезна будет опция -funroll-loops. Но вообще тут большое поле для экспериментов. От скорости работы программы x264 напрямую зависит скорость кодирования, так что чем больше вы выгадаете в скорости дополнительными опциями оптимизации при сборке, тем лучше.

Этап 4. Установка Avs2YUV

Теперь будем устанавливать Avs2YUV. Зачем это нужно? Дело в том, что сборка x264 для Windows (программа x264.exe) умеет работать со скриптами Avisynth, открывая их библиотеками Avisynth. Но наша супероптимизированная линуксовая версия x264 не умеет работать напрямую со скриптами Avisynth, так что нельзя просто указать x264 использовать в качестве входного видеопотока наш файл v.avs. К счастью, x264 может работать со входными потоками YUV4MPEG, а программа Avs2YUV как раз тем и занимается, что по скрипту Avisynth выдаёт поток YUV4MPEG.

Программа Avs2YUV тоже написана для Windows (иначе и быть не может, т.к. она должна использовать библиотеки Avisynth). Установка её сводится к простой распаковке архива.

Этап 5. Кодирование

Наконец, у нас всё подготовлено для кодирования!

Конечно, нужно подобрать параметры кодирования, но об этом я говорить не буду, а лучше направлю вас на хорошую статью.

Если вы выбрали кодирование в два прохода, то вот приблизительный скрипт для этого:

 #!/bin/sh AVS2YUV="wine /avs2yuv.exe v.avs -" NFRAMES=`($AVS2YUV | ( pwd > /dev/null ) ) 2>&1 | awk '>'` FRAMES="--frames $NFRAMES" X264_CMD="/x264" OPTIONS="--preset placebo --bitrate 1900 --bframes 6 --ref 6 --deblock 0:0 --ratetol 4.0 --qpmin 10" # Это опции для определения приблизительного bitrate # OPTIONS="--preset placebo --crf 18 --bframes 16 --ref 16 --deblock 0:0 --ratetol 4.0 --qpmin 10" OPTS_FULL="$OPTIONS $FRAMES --stats ".stats" --output r.mkv --demuxer y4m" $AVS2YUV | $X264_CMD $OPTS_FULL --pass 1 - $AVS2YUV | $X264_CMD $OPTS_FULL --pass 2 - # Это используйте при определении приблизительного bitrate (при однопроходном кодировании) #$AVS2YUV | $X264_CMD $OPTS_FULL -

Как видно, программа avs2yuv выдаёт несжатый видеопоток на стандартный выход (stdout), а x264 принимает этот поток на стандартном входе (stdin). При этом для x264 обязательно требуется указывать параметр —demuxer y4m, чтобы x264 понял, что входной поток — YUV4MPEG. К сожалению, программа x264 не может автоматически определить количество кадров (фреймов) по такому входному потоку, поэтому не будет отображать приблизительное время до завершения кодирования. Если же вы попытаетесь сохранять вывод avs2yuv в отдельный файл, чтобы потом обработать этот файл x264, то обнаружите, что этот файл будет слишком объёмным, ведь вспомним, что Avisynth выдаёт нам несжатый видеопоток. Поэтому avs2yuv надо связывать с x264 без промежуточных файлов. К счастью, программа avs2yuv печатает на нашей консолечке количество кадров, чем мы и воспользовались, запустив avs2yuv первый раз в broken pipe и сохранив распечатанное на stderr число кадров в переменной NFRAMES. Передавая далее число кадров в x264, мы начинаем видеть время до завершения кодирования.

Читайте также:  Execute windows program on linux

Запускать скрипт желательно с низким приоритетом, чтобы кодирование не мешало работе за компьютером. Делается это при помощи программы nice.

Источник

How to Install h.264 decoder on Ubuntu Linux

When you start using a fresh installed Ubuntu system and try to open an MP4 file to play videos, it may show you an error that reads:

H.264 (High Profile) decoder is required to play the file, but is not installed.

Ubuntu

You can perhaps guess what’s going on here. Your system doesn’t have the required media codecs installed and hence the video player cannot play that video file.

So, what’s the solution here? You install the required codec. But how?

I’ll discuss three ways about fixing this issue:

  1. Install just the required codec: It could work for the given file but some other video files will still complain about missing codecs.
  2. Install a wide variety of multimedia codecs at once: It installs codecs as well as some other packages that you might not need like Microsoft Fonts.
  3. Install a different video player: Applications like VLC and MPV have better support for codecs by default. You don’t need to install them separately for most common video files.

If you take my advice, I suggest going for the second as well as the third method. Why? You’ll see in a moment.

Getting h264 decoder in Ubuntu Linux

I am using Ubuntu Linux here. The first and the third methods should work for other distributions but not the second one as the package mentioned is (usually) exclusive to Ubuntu.

Method 1: Install only the required codec (not recommended)

When you see the error, it gives you the option to “Find in Ubuntu Software”. Clicking on that option opens the Software Center and it may (or may not) show some packages that will install the h264 decoder on your system.

h264 decoder ubuntu software center

The package names may sound similar but you need the GStreamer Multimedia Codecs from the “bad” set. Check the description of the packages.

Alternatively, you can install the package in the terminal using this command:

sudo apt install gstreamer1.0-plugins-bad

If you are new to the terminal, please note that it will ask for your account password. Nothing is displayed on the screen while you type the password. That’s the Linux way. You type the password blindly and press enter.

Once this package is installed, open the file again and see if it works now.

It may work for you but the story doesn’t end here. You may have other video files that require some other h264 decoder or some other decoder.

ac3 decoder missing ubuntu

You can try and install more decoders like this:

sudo apt install libavcodec-extra gstreamer1.0-plugins-ugly gstreamer1.0-libav

However, there is a much more convenient way of installing media codecs in Ubuntu and I’ll show it to you in the next section.

Ubuntu provides a meta-package named ubuntu-restricted-extras that consists of most of the common audio and video codecs along with some other packages like the Microsoft fonts.

Читайте также:  Локальный сервер обновлений линукс

Install this package and you won’t have to worry about the media codecs anymore.

Open the terminal in Ubuntu and type the following command:

sudo apt install ubuntu-restricted-extras

Since this meta-package contains software from Microsoft, you’ll have to accept the End User License Agreement (EULA).

Installing Ubuntu Restricted Extras

The next screen may look like the one below. Just press tab and it will highlight the options. When the correct options are highlighted, press enter to confirm your selection.

Installing Ubuntu Restricted Extras

With the multimedia codecs installed, you should be able to play (almost) all kinds of media files. Your music player can play MP3 files and your video player should be able to play MP4, MKV, and whatnot.

However, this too is not the end of the story, at least for some people.

Why do I say that? Because I have noticed that the default video player in Ubuntu, Totem, often struggles while playing certain kinds of video files. You’ll notice that suddenly your system heats up, the fans start blowing and your mouse cursor stop functioning smoothly.

Why? Because Totem is struggling in decoding the video and taking too much processing power.

You can test it by running the top command while playing the video. Look for the process named totem (that’s the name of the default video player).

totem consuming more cpu ubuntu

What can you do now? Your trouble seems to be never ending. Fret not. There are better video players in Linux and they will help you solve the issue.

There are many good video players in Linux. I find them better than the default Totem video player.

Personally, I prefer two of the lot: VLC and MPV.

VLC is a versatile and hugely popular video player. Chances are that you have already used VLC.

MPV Media Player is not that popular but this lightweight application is quite good for playing video files.

Both VLC and MPV players are good at handling media codecs. You don’t even need to install media codecs separately with them. Just install VLC or MPV and you should be able to play various kinds of video files.

Either look for it in the software center:

mpv player ubuntu software center

Or install MPV on Ubuntu using the command line:

Now that you have another video player, you should right click on the video files and choose to open with the new video player.

Alternatively, you can make it the default application for playing video files and use double clicks.

Did it work for you?

I hope I didn’t go into too much detail here. I wanted to explain the various methods and the pros and cons associated with each of them.

Did you manage to get rid of the h264 decoder problem in Ubuntu? Which method did you go for?

Источник

Оцените статью
Adblock
detector