2pass кодирование ffmpeg сразу

Несколько опций:

var1=uniform var2=2350 var3=0.076662 var4=2.78

printf '%-15s %-10s %-12s %s\n' \
  case elems messing nlsys \
  "$var1" "$var2" "$var3" "$var4"

printf '%s\t%s\t%s\t%s\n' \
  case elems messing nlsys \
  "$var1" "$var2" "$var3" "$var4" |
  expand -t 15,25,37

printf '%s\t%s\t%s\t%s\n' \
  case elems messing nlsys \
  "$var1" "$var2" "$var3" "$var4" |
  column -t -s $'\t'

столбец является нестандартной командой, некоторые реализации/версии не поддерживают-s опцию. Это вычисляет ширину столбца на основе входа, но это означает, что может только начать отображаться, после того как весь вход питался к нему. $'...' ksh93 синтаксис, также найденный в zsh и ударе.

С zsh:

values=(
  case elems messing nlsys
  "$var1" "$var2" "$var3" "$var4"
)
print -arC4 -- "$values[@]"
1
01.10.2013, 04:07
2 ответа

Вместо того, чтобы выполнить их как 2 отдельных команды можно выполнить их на одной командной строке как так:

$ ffmpeg -i input.avi -pass 1 -an output.mp4 && \
    ffmpeg -i input.avi -pass 2 -ab 128k -y output.mp4

Различие && нотация, которая выполнит вторую команду (2-я передача), только если первая команда была успешна. Они - все еще 2 отдельных операции, но это позволит Вам выполнять одну командную строку по сравнению с 2, которые необходимо было сделать ранее.

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

1
27.01.2020, 23:53
  • 1
    Интересно, могли ли Вы сделать что-то как ffmpeg -pass 1 -passlogfile - | ffmpeg -pass 2 -passlogfile - закодировать обе передачи сразу? –  JamesTheAwesomeDude 18.05.2015, 23:35

Я использую mencoder, но уверен, что нечто подобное можно сделать с помощью ffmpeg/avconv, используя устройство FIFO:

$ mkfifo passlog

$ mencoder infile.flv -passlogfile passlog........... pass=1 &

$ mencoder infile.flv -passlogfile passlog........... pass=2
0
27.01.2020, 23:53

Теги

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