Как я могу встроить подзаголовки в видео с ffmpeg?

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

9
27.10.2011, 06:27
3 ответа

От man ffmpeg:

Опции подзаголовка:

- кодек подзаголовка Силы кодека scodec ('копия' для копирования потока).

- newsubtitle Добавляют новый поток подзаголовка к потоку текущей производительности.

- сленговый кодовый набор код языка ISO 639 (3 буквы) текущего потока подзаголовка.

Так: ffmpeg -newsubtitle subtitles.srv -i video.avi ...

3
27.01.2020, 20:07
  • 1
    Если я использую вместо ... result.avi эта команда не работает At least one output file must be specified –  xralf 27.10.2011, 14:01
  • 2
    Конечно, ... означает "и безотносительно других опций, в которых Вы нуждаетесь". –  Shawn J. Goff 27.10.2011, 14:09
  • 3
    Достаточный ffmpeg -newsubtitle subtitles.srt -i video.avi result.avi но это заканчивается сообщением выше. Я надеялся, что result.avi является выходным файлом. Я попробовал его -o result.avi также, но без успеха. –  xralf 27.10.2011, 14:22
  • 4
    , который я не знаю, почему это не работало на меня (возможно, неправильный файл или проблема с ffmpeg). Я попробовал эту команду вместо этого mencoder movie.avi -sub movie.srt -o movie.hardsubs.avi -oac copy -ovc lavc -lavcopts vbitrate=1200 –  xralf 08.11.2011, 12:07
  • 5
    @ShawnJ.Goff: Это не работало на меня также. Какую версию ffmpeg Вы используете, и что ОС? –  Faheem Mitha 07.04.2012, 23:52

ffmpeg разработчики работают с поддержкой подзаголовка, но насколько я знаю, что она только работает в последнем ffmpeg. mencoder запишет подзаголовки немедленно, если Вы захотите попробовать это вместо этого.

1
27.01.2020, 20:07

Для общего доступа, необходимо будет использовать MASQUARADE / SNAT (зависящий, если IP-адрес на C является динамичным или статичным).

, Таким образом, скажем, текущая ситуация - ваш , компьютер имеет статический IP-адрес a.a.a.a и ваш , компьютер B имеет статический IP-адрес b.b.b.b . У обоих есть шлюз по умолчанию к компьютер C . И Someserver.com имеет статический IP-адрес r.r.r.r , и секретный порт pppp.

Вы настроили бы компьютер C как маршрутизатор, который будет иметь его маршрут по умолчанию к Интернету интерфейс C (он уже делает это, или с помощью статической конфигурации, или являющийся динамично устанавливает через PPPoE, и т.д.). Это отдельно выполнит 1.

Теперь, у вас есть две возможности:

  1. делают компьютер маршрутизатор также. Затем вы изменяетесь компьютерная B конфигурация, таким образом, ее маршрут по умолчанию через компьютер (а не компьютер C как прежде), и настройте компьютер как это:

     iptables-t туземный-s b.b.b.b-d r.r.r.r-p tcp - dport pppp-j SNAT - к a.a.a.a
    

    это сделало бы все пакеты TCP из источника IP b.b.b.b , идущего в целевой IP r.r.r.r и целевой порт , pppp притворяется как, они прибывают от a.a.a.a, таким образом выполняя 3 , и трафик от , someserver.com вернется к тому, что было исходным адресом ( a.a.a.a), который будет декодироваться компьютер и передаваться обратно компьютер B . (таким образом выполнение 4 )

    , Который легче, но требует, чтобы вы компьютер B выполнил ОС, которая способна к такой политике NAT.

  2. изменение компьютер , чтобы иметь частный IP как 10.0.1.100/24 и компьютер B , чтобы иметь частный IP 10.0.2.100/24. Затем на компьютер C сделайте:

     IP addr добавляют a.a.a.a/nn разработчик ifaceC
    IP addr добавляет b.b.b.b/nn разработчик ifaceC
    iptables-t туземный-s 10.0.1.100-j SNAT - к a.a.a.a
    iptables-t туземный-s 10.0.2.100-d r.r.r.r-p tcp - dport pppp-j SNAT - к a.a.a.a
    iptables-t туземный-s 10.0.2.100-j SNAT - к b.b.b.b
    

    где nn является вашей сетевой маской и , ifaceC является названием вашего интерфейс C . Это поместило бы компьютер и компьютер B в частных диапазонах, таким образом позволив компьютер C компьютеру NAT к a.a.a.a (таким образом, он ведет себя как прежде), и компьютер NAT B любой к a.a.a.a (если dst = r.r.r.r, dport = , условие pppp встречено), или к b.b.b.b (иначе).

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

И, конечно, это этот возраст следует отметить, что выше будет работать только на хорошие ol ' IPv4 адреса (последние из которых быстро используются ), а не на IPv6

-121--139960-

Из ссылки Пирса, в частности:

ffmpeg -i video.avi -vf subtitles=subtitle.srt out.avi

Я успешно использовал это с текущим статическим git

3
27.01.2020, 20:07

Теги

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