FFMPEG Добавить видео в начало и конец другого

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

#!/bin/bash

file=/etc/hosts

if [ -z "$1" ]; then
    echo Usage: $0 name 1>&2
    exit 2
fi

if grep -q "$1" $file ; then
    echo "$file" contains $1
else
    echo "$file" doesn\'t contain $1
fi

Примечания

  • Первый тест ( если [-z «$1»]; тогда... ) имеет значение true, если $1 (первый аргумент командной строки) является пустым рядом (или не был предоставлен).
  • Строка Использование: выводится на stderr с 1 > и 2
  • Сам по себе выход grep скрыт (за исключением выходных данных об ошибках, которые вы, вероятно, захотите увидеть), поскольку в этом
    • grep имеет параметр -q , который замалчивает все выходные данные, что является лучшим выбором здесь, но не все команды имеют «тихий» переключатель. В этих случаях вместо этого можно использовать >/dev/null , как в приведенном ниже примере.

Конкретный пример с $?

Вы специально попросили пример с $? . Вместо вышеуказанного , если grep... конструкция, мы действительно могли бы разделить это на отдельные утверждения:

# grep -q "$1" $file would work just as well, here (better, maybe!):
grep "$1" $file >/dev/null

if [ $? -eq 0 ]; then
    echo "$file" contains $1
else
    echo "$file" doesn\'t contain $1
fi

Важно отметить, что тестирование $? должно происходить сразу после рассматриваемой команды, так как любые другие команды (за исключением некоторых построений оболочки) приведут к перезаписи значения.

Что такое $?

$? - это просто код выхода последнего процесса (команды), выполненного оболочкой. По соглашению код выхода 0 является успешным (хотя, как и в случае большинства конвенций, существуют исключения). Более высокие коды выхода могут иметь различные значения, специфичные для приложения, но обычно ненулевые означает какой-то ненормальный выход. Для получения дополнительной информации см. документацию по команде.

Дальнейшее чтение

test (1)

-121--216551-

Откройте терминал и запустите

sudo apt-get update; sudo apt-get модернизации

Ответ Y на все вопросы. В моем случае проблема исчезла.

-121--228592-

Как уже упоминалось, в этом потоке много путаницы. Исходный вопрос заключается в том, какой диспетчер дисплея, а не диспетчер рабочего стола или диспетчер окон. В настоящее время я работаю Xfwm4 который является диспетчером окон Xfce, и lxdm, который является легким диспетчером отображения X11 (от LXDE, а не Xfce). Вы должны видеть, какой диспетчер дисплея вы используете через htop. Вероятно, вы уже давно нашли ответ за последние 4 года:)

0
06.07.2018, 13:31
1 ответ

Если видео закодированы с использованием одних и тех же кодеков, вы можете использовать оператор concat.

If you have media files with exactly the same codec and codec parameters you can concatenate them as described in "Concatenation of files with same codecs". If you have media with different codecs you can concatenate them as described in "Concatenation of files with different codecs" below.

$ cat build_ffmpegs.bash
#!/bin/bash

intro=/home/intro/play.mp4
outro=/home/intro/play.mp4

cd /home/vid

for i in vid*; do
    ffmpeg -f concat -safe 0 \
      -i < <(printf "file '%s'\n" $intro $(readlink -f $i) $outro) \
      -c copy /home/vid2/output_${i}
done

Запуск этого приведет к созданию ffmpegтаких команд:

ffmpeg -f concat -safe 0 -i < <(printf "file '%s'\n" /home/intro/play.mp4 /home/vid/vid1.mp4 /home/intro/play.mp4) -c copy /home/vid2/output_vid1.mp4
ffmpeg -f concat -safe 0 -i < <(printf "file '%s'\n" /home/intro/play.mp4 /home/vid/vid2.mp4 /home/intro/play.mp4) -c copy /home/vid2/output_vid2.mp4
ffmpeg -f concat -safe 0 -i < <(printf "file '%s'\n" /home/intro/play.mp4 /home/vid/vid3.mp4 /home/intro/play.mp4) -c copy /home/vid2/output_vid3.mp4
ffmpeg -f concat -safe 0 -i < <(printf "file '%s'\n" /home/intro/play.mp4 /home/vid/vid4.mp4 /home/intro/play.mp4) -c copy /home/vid2/output_vid4.mp4
ffmpeg -f concat -safe 0 -i < <(printf "file '%s'\n" /home/intro/play.mp4 /home/vid/vid5.mp4 /home/intro/play.mp4) -c copy /home/vid2/output_vid5.mp4

Отсюда вы сможете адаптировать команды ffmpegк любым другим особенностям, которые вам нужны.

Ссылки

0
28.01.2020, 04:18

Теги

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