Как объединить субтитры к видео?

Как я могу объединить субтитры с фильмом для воспроизведения на моем Android TV?

Я искал долго, но почти программа больше не работает в Ubuntu, или я не могу найти репозиторий. Здесь есть некоторый ответ, но я думаю, что он больше не поддерживается 16.04

7
задан 5 May 2017 в 18:53

4 ответа

I use Hand Brake on my ubuntu 16.04 great application and very simple to use . https://launchpad.net/~stebbins/+archive/ubuntu/handbrake-releases

Installation:

sudo add-apt-repository ppa:stebbins/handbrake-releases
sudo apt-get update 
sudo apt-get install handbrake

How it work:

  • Click on source and chose movie.
  • From subtitle List tab click on Add.
  • don't forget to tick on Burn into video. List item
  • finally click on Start.
15
ответ дан 5 May 2017 в 18:53

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

mkvmerge -o movie_with_subs.mkv   movie.mp4  subs.srt

, Который будет включать все дорожки от mp4 (видео, аудио, главы), и нижние индексы от srt как текстовая дорожка подзаголовка. Это сопровождает пока копирование файла, так как это не имеет к decode/re-encode видео.

пакеты Ubuntu mkvmerge в mkvtoolnix. Существует mkvtoolnix-gui пакет, с gui frontend. Это имеет много опций позволить Вам управлять вещами как смещение подзаголовка.

главное преимущество для этого состоит в том, что Вы стараетесь не ухудшаться, качество с другим декодируют/кодируют цикл потеря при перезаписи . Невозможно постараться не терять качество при транскодировании, и требуется много процессорного времени, чтобы даже близко подойти к качеству на размер файла хорошо закодированного источника. (например, x264 с -preset slower, или если Ваш плеер поддерживает его, x265, если Вы готовы потратить огромную сумму процессорного времени для создания меньших файлов, которые все еще выглядят хорошими). Если Вы не заботитесь о размере файла, потому что Вы просто передаете его потоком к своему ТВ, транскодирование с x264 с -preset veryfast -crf15 может работать быстро и потерять минимальное качество.

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

можно также извлечь их позже и искать их, при попытке помнить строку из фильма.

можно даже извлечь их, зафиксировать опечатки и мультиплексировать их, въезжают задним ходом.

13
ответ дан 5 May 2017 в 18:53

Я думаю, что MKVToolNix является самым простым и легким к использованию бесплатным инструментом, доступным для Вас для слияния видеофайла с файлом подзаголовков. Просто установите его, например, выполнение команды терминала/оболочки, такой как:

sudo apt-get install mkvtoolnix mkvtoolnix-gui -y

... и затем выполненный это, щелкните правой кнопкой по области Исходных файлов, чтобы добавить Ваш видеофайл и Ваш файл подзаголовков (шаг 1, в изображении ниже), указать местоположение целевого видеофайла MKV (шаг 2) и затем нажать кнопку Старт, мультиплексировав (шаг 3).Готово.

MVKToolNix's main window

Мультиплексоры/мультиплексирование MKVToolNix подзаголовки отслеживают/передают потоком наряду с видеотреком / поток. Это означает что вывод файл MKV (например. /tmp/output.mkv) будет видеофайл, который содержит подзаголовки, встроенные в него, и Вы сможете включить и выключить подзаголовки, в то время как такое видео MKV играет.

PS: если Ваше ТВ Android не играет видеофайлы MKV, используйте Плеер MX, Плеер Kodi или VLC Media Player для добавления поддержки воспроизведения MKV.


Что, если Вы хотите подзаголовки, "сплавленные" (hardcoded) в видео, вместо просто, мультиплексировало/мультиплексировало?

В таком случае подход laborious-yet-rewarding состоит из (1) преобразования Вашего файла подзаголовков к формату SSA, (2) редактирования строки Стиля SSA и затем (3) использование avconv/ffmpeg к merge/hardcode такие стилизованные подзаголовки в видеотрек / поток (символы подзаголовков будут затем преобразованы в пиктограммы или графические символы, т.е. пиксели, не только "положенные по" изображениям/кадрам видео, но и заменяющий некоторые из таких пикселей).

Вот то, как сделать это:

  1. Используйте редактора подзаголовков, такого как Подзаголовки GNOME (для установки его от оболочки, работайте sudo apt-get install gnome-subtitles -y) преобразовать Ваш файл подзаголовков (например. input.srt) к формату SSA (например. input.ssa) и затем сохраните файл SSA в /tmp (Вы будете таким образом иметь /tmp/input.ssa).
  2. Используйте простого текстового редактора, такого как Gedit (установите его с командой оболочки sudo apt-get install gedit -y) открыть Ваш файл SSA и затем заменить все Style строка этим:

Style: Default,Arial,16,&H00FFFF,&H00FFFF,&H00FFFF,&H77000000,2,0,3,2,1,2,10,10,10,0,0

После замены Style строка, сохраните файл SSA и затем закройте текстовый редактор. Строка конфигурации выше глобально задаст подзаголовки с желтым шрифтом Arial на 16 ПБ и добавит полупрозрачный черный фон позади подзаголовков (для создания чтения их легче).

  1. Теперь пора использовать avconv:

    3.1. Установите avconv и ffmpeg пакеты путем выполнения этой команды оболочки:

    sudo apt-get install ffmpeg libav-tools -y
    

    3.2. Переместите свой видеофайл (например. input.avi) к /tmp папка, чтобы закончить тем, что имел, например. /tmp/input.avi и /tmp/input.ssa

    3.3. Выполните команду оболочки cd /tmp для порождения оболочки Linux к доступу /tmp каталог

    3.4. Hardcode подзаголовки SSA в видеофайл путем выполнения этой команды оболочки:

    avconv -i input.avi -map 0:0 -map 0:1 -c:v libx264 -aspect 16:9 -q:v 1 -b:v 512k -strict -2 -c:a aac -ac 2 -filter:v subtitles=input.ssa output.mp4
    

Вывод команды выше будет /tmp/output.mp4 и Вы заметите, что такой видеофайл MP4 будет иметь растровые подзаголовки hardcoded.

Если Вы хотите уменьшиться, качество объединилось/произвело видео, чтобы сделать его файл меньшим и возможно ожидать меньше времени процесса слияния, чтобы закончиться, уменьшиться 512k к меньшему значению (например. 256k). Если Вы решаете увеличиться, качество объединилось/произвело видео за счет получения большего размера файла и возможно ожидания больше чтобы процесс слияния конец, увеличение 512k к большему значению (например. 768k).

1
ответ дан 29 September 2019 в 13:19

Теперь он работает без преобразования в .ass в Ubuntu 20.10

Недавно они включили поддержку libass, похоже, в пакете, так что теперь вы можете просто сделать:

ffmpeg -i hello.mp4 -vf "subtitles=hello2.srt" hello-sub.mp4

Прежде чем он был включен, вам нужно было:

ffmpeg -i hello2.srt hello.ass
ffmpeg -i hello.mp4 -vf ass=hello.ass hello-sub.mp4

Вы можете проверить поддержку libsass с помощью:

ffmpeg --version

, который теперь содержит:

--enable-libass

Сгенерированный вывод можно увидеть по адресу: https://www.youtube.com /watch?v=Q0nVA3mYXLU

Тестовые файлы можно получить с помощью:

wget -O hello.mp4 https://github.com/cirosantilli/media/blob/master/Top_Down_2D_Continuous_Game_with_Urho3D_C++_SDL_and_Box2D_for_Reinforcement_Learning_first_8_seconds.mp4?raw=true
wget -O hello2.srt https://github.com/cirosantilli/media/blob/master/Top_Down_2D_Continuous_Game_with_Urho3D_C++_SDL_and_Box2D_for_Reinforcement_Learning_first_8_seconds.srt?raw=true

где:

Связано:

Проверено на Ubuntu 20.04, ffmpeg 4.2.4.

2
ответ дан 8 September 2020 в 22:13

Другие вопросы по тегам:

Похожие вопросы: