Преобразование видеофайла в произвольный формат файла в MPEG4 / H.264?

Я хочу преобразовать большое количество видеофайлов в различных форматах в .mp4 файлы (контейнер MPEG-4, кодек H.264). Я хочу сделать это на машине Ubuntu, используя только инструменты командной строки, и я готов устанавливать пакеты из main, restricted, universe и multiverse.

В идеале я «Мне нравится иметь возможность ...

for VIDEO_FILE in *; do some_conversion_program $VIDEO_FILE $VIDEO_FILE.mp4 done

... и иметь все мои видеофайлы в формате .mp4 с контейнером MPEG-4 и кодеком H.264.

Как бы вы справились с этой проблемой на машине Ubuntu? Какие пакеты мне нужно установить?

6
задан 31 December 2010 в 12:48

20 ответов

Вам нужно будет установить их:

sudo apt-get install ffmpeg libavcodec-unstripped-52 libavdevice-unstripped-52 libavformat-unstripped-52 libavutil-unstripped-50 libpostproc-unstripped-51 libswsclale-unstripped-0 x264

В Karmic, Lucid и Maverick вы должны заменить «unstripped» на «extra», но так как это пакеты с переходом также работают.

И тогда вы можете использовать скрипт с помощью:

for i in *.avi; do ffmpeg -i "$i" -f mp4 "`basename "$i" .avi`.mp4";done

И вы можете использовать такие параметры, чтобы настроить разрешение, видеокодек и аудиокодек и качество звука:

for i in *.avi; do ffmpeg -i "$i" -s 352x288 -vcodec libx264 -vpre default -acodec libmp3lame -ab 192k -ac 2 -ar 44100 -f mp4 "`basename "$i" .avi`.mp4";done
7
ответ дан 26 May 2018 в 00:57

Вам нужно будет установить их:

sudo apt-get install ffmpeg libavcodec-unstripped-52 libavdevice-unstripped-52 libavformat-unstripped-52 libavutil-unstripped-50 libpostproc-unstripped-51 libswsclale-unstripped-0 x264

В Karmic, Lucid и Maverick вы должны заменить «unstripped» на «extra», но так как это пакеты с переходом также работают.

И тогда вы можете использовать скрипт с помощью:

for i in *.avi; do ffmpeg -i "$i" -f mp4 "`basename "$i" .avi`.mp4";done

И вы можете использовать такие параметры, чтобы настроить разрешение, видеокодек и аудиокодек и качество звука:

for i in *.avi; do ffmpeg -i "$i" -s 352x288 -vcodec libx264 -vpre default -acodec libmp3lame -ab 192k -ac 2 -ar 44100 -f mp4 "`basename "$i" .avi`.mp4";done
7
ответ дан 25 July 2018 в 23:03

Вам нужно будет установить их:

sudo apt-get install ffmpeg libavcodec-unstripped-52 libavdevice-unstripped-52 libavformat-unstripped-52 libavutil-unstripped-50 libpostproc-unstripped-51 libswsclale-unstripped-0 x264

В Karmic, Lucid и Maverick вы должны заменить «unstripped» на «extra», но так как это пакеты с переходом также работают.

И тогда вы можете использовать скрипт с помощью:

for i in *.avi; do ffmpeg -i "$i" -f mp4 "`basename "$i" .avi`.mp4";done

И вы можете использовать такие параметры, чтобы настроить разрешение, видеокодек и аудиокодек и качество звука:

for i in *.avi; do ffmpeg -i "$i" -s 352x288 -vcodec libx264 -vpre default -acodec libmp3lame -ab 192k -ac 2 -ar 44100 -f mp4 "`basename "$i" .avi`.mp4";done
7
ответ дан 27 July 2018 в 02:25

Вам нужно будет установить их:

sudo apt-get install ffmpeg libavcodec-unstripped-52 libavdevice-unstripped-52 libavformat-unstripped-52 libavutil-unstripped-50 libpostproc-unstripped-51 libswsclale-unstripped-0 x264

В Karmic, Lucid и Maverick вы должны заменить «unstripped» на «extra», но так как это пакеты с переходом также работают.

И тогда вы можете использовать скрипт с помощью:

for i in *.avi; do ffmpeg -i "$i" -f mp4 "`basename "$i" .avi`.mp4";done

И вы можете использовать такие параметры, чтобы настроить разрешение, видеокодек и аудиокодек и качество звука:

for i in *.avi; do ffmpeg -i "$i" -s 352x288 -vcodec libx264 -vpre default -acodec libmp3lame -ab 192k -ac 2 -ar 44100 -f mp4 "`basename "$i" .avi`.mp4";done
7
ответ дан 31 July 2018 в 12:21

Вам нужно будет установить их:

sudo apt-get install ffmpeg libavcodec-unstripped-52 libavdevice-unstripped-52 libavformat-unstripped-52 libavutil-unstripped-50 libpostproc-unstripped-51 libswsclale-unstripped-0 x264

В Karmic, Lucid и Maverick вы должны заменить «unstripped» на «extra», но так как это пакеты с переходом также работают.

И тогда вы можете использовать скрипт с помощью:

for i in *.avi; do ffmpeg -i "$i" -f mp4 "`basename "$i" .avi`.mp4";done

И вы можете использовать такие параметры, чтобы настроить разрешение, видеокодек и аудиокодек и качество звука:

for i in *.avi; do ffmpeg -i "$i" -s 352x288 -vcodec libx264 -vpre default -acodec libmp3lame -ab 192k -ac 2 -ar 44100 -f mp4 "`basename "$i" .avi`.mp4";done
7
ответ дан 2 August 2018 в 04:24

Вам нужно будет установить эти:

  sudo apt-get install ffmpeg libavcodec-unstripped-52 libavdevice-unstripped-52 libavformat-unstripped-52 libavutil-unstripped-50 libpostproc-unstripped-  51 libswsclale-unstripped-0 x264  

В Karmic, Lucid и Maverick вы должны заменить «unstripped» на «extra», но поскольку там тоже есть пакеты с переходными процессами.

И затем вы можете использовать скрипт с:

  для i в * .avi;  do ffmpeg -i "$ i" -f mp4 "basename" $ ​​i ".avi`.mp4"; done  

И вы можете использовать такие параметры, чтобы настроить разрешение, видео кодек и аудиокодек и качество звука:

  для i в * .avi;  do ffmpeg -i "$ i" -s 352x288 -vcodec libx264 -vpre default -acodec libmp3lame -ab 192k -ac 2 -ar 44100 -f mp4 "basename" $ ​​i ".avi`.mp4"; done  
7
ответ дан 4 August 2018 в 20:56

Вам нужно будет установить эти:

  sudo apt-get install ffmpeg libavcodec-unstripped-52 libavdevice-unstripped-52 libavformat-unstripped-52 libavutil-unstripped-50 libpostproc-unstripped-  51 libswsclale-unstripped-0 x264  

В Karmic, Lucid и Maverick вы должны заменить «unstripped» на «extra», но поскольку там тоже есть пакеты с переходными процессами.

И затем вы можете использовать скрипт с:

  для i в * .avi;  do ffmpeg -i "$ i" -f mp4 "basename" $ ​​i ".avi`.mp4"; done  

И вы можете использовать такие параметры, чтобы настроить разрешение, видео кодек и аудиокодек и качество звука:

  для i в * .avi;  do ffmpeg -i "$ i" -s 352x288 -vcodec libx264 -vpre default -acodec libmp3lame -ab 192k -ac 2 -ar 44100 -f mp4 "basename" $ ​​i ".avi`.mp4"; done  
7
ответ дан 6 August 2018 в 04:29

Вам нужно будет установить эти:

  sudo apt-get install ffmpeg libavcodec-unstripped-52 libavdevice-unstripped-52 libavformat-unstripped-52 libavutil-unstripped-50 libpostproc-unstripped-  51 libswsclale-unstripped-0 x264  

В Karmic, Lucid и Maverick вы должны заменить «unstripped» на «extra», но поскольку там тоже есть пакеты с переходными процессами.

И затем вы можете использовать скрипт с:

  для i в * .avi;  do ffmpeg -i "$ i" -f mp4 "basename" $ ​​i ".avi`.mp4"; done  

И вы можете использовать такие параметры, чтобы настроить разрешение, видео кодек и аудиокодек и качество звука:

  для i в * .avi;  do ffmpeg -i "$ i" -s 352x288 -vcodec libx264 -vpre default -acodec libmp3lame -ab 192k -ac 2 -ar 44100 -f mp4 "basename" $ ​​i ".avi`.mp4"; done  
7
ответ дан 7 August 2018 в 22:38

Вам нужно будет установить эти:

  sudo apt-get install ffmpeg libavcodec-unstripped-52 libavdevice-unstripped-52 libavformat-unstripped-52 libavutil-unstripped-50 libpostproc-unstripped-  51 libswsclale-unstripped-0 x264  

В Karmic, Lucid и Maverick вы должны заменить «unstripped» на «extra», но поскольку там тоже есть пакеты с переходными процессами.

И затем вы можете использовать скрипт с:

  для i в * .avi;  do ffmpeg -i "$ i" -f mp4 "basename" $ ​​i ".avi`.mp4"; done  

И вы можете использовать такие параметры, чтобы настроить разрешение, видео кодек и аудиокодек и качество звука:

  для i в * .avi;  do ffmpeg -i "$ i" -s 352x288 -vcodec libx264 -vpre default -acodec libmp3lame -ab 192k -ac 2 -ar 44100 -f mp4 "basename" $ ​​i ".avi`.mp4"; done  
7
ответ дан 10 August 2018 в 10:45

Вам нужно будет установить эти:

  sudo apt-get install ffmpeg libavcodec-unstripped-52 libavdevice-unstripped-52 libavformat-unstripped-52 libavutil-unstripped-50 libpostproc-unstripped-  51 libswsclale-unstripped-0 x264  

В Karmic, Lucid и Maverick вы должны заменить «unstripped» на «extra», но поскольку там тоже есть пакеты с переходными процессами.

И затем вы можете использовать скрипт с:

  для i в * .avi;  do ffmpeg -i "$ i" -f mp4 "basename" $ ​​i ".avi`.mp4"; done  

И вы можете использовать такие параметры, чтобы настроить разрешение, видео кодек и аудиокодек и качество звука:

  для i в * .avi;  do ffmpeg -i "$ i" -s 352x288 -vcodec libx264 -vpre default -acodec libmp3lame -ab 192k -ac 2 -ar 44100 -f mp4 "basename" $ ​​i ".avi`.mp4"; done  
7
ответ дан 13 August 2018 в 17:18

Для Ubuntu 14.04 и новее

Вам понадобится avconv из libav-tools и ubuntu-limited-extras. Вы можете установить их, если у вас их нет уже с помощью команды:

sudo apt-get install libav-tools ubuntu-restricted-extras

Этот скрипт должен делать трюк, однако предполагается, что в нем есть только видео файлы указанная папка, в противном случае могут возникнуть непредвиденные последствия.

#!/bin/bash
echo "This script will attempt to encode by re-encoding the video stream and copying the audio stream placing all files in the current directory into a mp4 video container of the same name as the sources. The new filename will be derived from a basename (everything before the source file last '.') and an extension (everything after the source file last '.'). Target names will be 'basename'.mp4. Sources matching the target name will be renamed with a .bak extension prior to processing for safety. a CRF of 25 is harcoded in by preference but feel free to adjust as you desire."
echo 
echo "You must choose the preset of your choice with a tradeoff of speed vs. quality"
echo  "(veryfast recommended for decent speed and decent quality)"
echo "type  a preset and press enter or bail and enter to quit now. Preset choices are:"
echo "ultrafast superfast veryfast faster fast medium slow slower slowest"
read preset
echo "you chose $preset"
if [ "$preset" != "bail" ]
then
for f in *.* 
    do
    name=$(echo "$f" | sed 's/\.[^\.]*$//')
    ext=$(echo "$f" | sed 's/^.*\.//')
    target="$name.mp4"
    echo target = $target
        if  [ "$f" = "$target" ];
        then
            echo "$f=$target so moving source to backup file"
            mv "$f" "$f.bak";
            if [ "$?" != "0" ]; then echo "error renaming $f" && exit
            fi 
            avconv -i "$f.bak" -c:a copy -c:v libx264 -preset "$preset" -crf 25 "$target"
            if [ "$?" != "0" ]; then echo "error processing $f.bak" && exit
            fi 
        else 
            avconv -i "$f" -c:a copy -c:v libx264 -preset "$preset" -crf 25 "$target"
            if [ "$?" != "0" ]; then echo "error processing $f" && exit
            fi 
        fi
    done
fi
0
ответ дан 26 May 2018 в 00:57

Для Ubuntu 14.04 и новее

Вам понадобится avconv из libav-tools и ubuntu-limited-extras. Вы можете установить их, если у вас их нет уже с помощью команды:

sudo apt-get install libav-tools ubuntu-restricted-extras

Этот скрипт должен делать трюк, однако предполагается, что в нем есть только видео файлы указанная папка, в противном случае могут возникнуть непредвиденные последствия.

#!/bin/bash echo "This script will attempt to encode by re-encoding the video stream and copying the audio stream placing all files in the current directory into a mp4 video container of the same name as the sources. The new filename will be derived from a basename (everything before the source file last '.') and an extension (everything after the source file last '.'). Target names will be 'basename'.mp4. Sources matching the target name will be renamed with a .bak extension prior to processing for safety. a CRF of 25 is harcoded in by preference but feel free to adjust as you desire." echo echo "You must choose the preset of your choice with a tradeoff of speed vs. quality" echo "(veryfast recommended for decent speed and decent quality)" echo "type a preset and press enter or bail and enter to quit now. Preset choices are:" echo "ultrafast superfast veryfast faster fast medium slow slower slowest" read preset echo "you chose $preset" if [ "$preset" != "bail" ] then for f in *.* do name=$(echo "$f" | sed 's/\.[^\.]*$//') ext=$(echo "$f" | sed 's/^.*\.//') target="$name.mp4" echo target = $target if [ "$f" = "$target" ]; then echo "$f=$target so moving source to backup file" mv "$f" "$f.bak"; if [ "$?" != "0" ]; then echo "error renaming $f" && exit fi avconv -i "$f.bak" -c:a copy -c:v libx264 -preset "$preset" -crf 25 "$target" if [ "$?" != "0" ]; then echo "error processing $f.bak" && exit fi else avconv -i "$f" -c:a copy -c:v libx264 -preset "$preset" -crf 25 "$target" if [ "$?" != "0" ]; then echo "error processing $f" && exit fi fi done fi
0
ответ дан 25 July 2018 в 23:03

Для Ubuntu 14.04 и новее

Вам понадобится avconv из libav-tools и ubuntu-limited-extras. Вы можете установить их, если у вас их нет уже с помощью команды:

sudo apt-get install libav-tools ubuntu-restricted-extras

Этот скрипт должен делать трюк, однако предполагается, что в нем есть только видео файлы указанная папка, в противном случае могут возникнуть непредвиденные последствия.

#!/bin/bash echo "This script will attempt to encode by re-encoding the video stream and copying the audio stream placing all files in the current directory into a mp4 video container of the same name as the sources. The new filename will be derived from a basename (everything before the source file last '.') and an extension (everything after the source file last '.'). Target names will be 'basename'.mp4. Sources matching the target name will be renamed with a .bak extension prior to processing for safety. a CRF of 25 is harcoded in by preference but feel free to adjust as you desire." echo echo "You must choose the preset of your choice with a tradeoff of speed vs. quality" echo "(veryfast recommended for decent speed and decent quality)" echo "type a preset and press enter or bail and enter to quit now. Preset choices are:" echo "ultrafast superfast veryfast faster fast medium slow slower slowest" read preset echo "you chose $preset" if [ "$preset" != "bail" ] then for f in *.* do name=$(echo "$f" | sed 's/\.[^\.]*$//') ext=$(echo "$f" | sed 's/^.*\.//') target="$name.mp4" echo target = $target if [ "$f" = "$target" ]; then echo "$f=$target so moving source to backup file" mv "$f" "$f.bak"; if [ "$?" != "0" ]; then echo "error renaming $f" && exit fi avconv -i "$f.bak" -c:a copy -c:v libx264 -preset "$preset" -crf 25 "$target" if [ "$?" != "0" ]; then echo "error processing $f.bak" && exit fi else avconv -i "$f" -c:a copy -c:v libx264 -preset "$preset" -crf 25 "$target" if [ "$?" != "0" ]; then echo "error processing $f" && exit fi fi done fi
0
ответ дан 27 July 2018 в 02:25

Для Ubuntu 14.04 и новее

Вам понадобится avconv из libav-tools и ubuntu-limited-extras. Вы можете установить их, если у вас их нет уже с помощью команды:

sudo apt-get install libav-tools ubuntu-restricted-extras

Этот скрипт должен делать трюк, однако предполагается, что в нем есть только видео файлы указанная папка, в противном случае могут возникнуть непредвиденные последствия.

#!/bin/bash echo "This script will attempt to encode by re-encoding the video stream and copying the audio stream placing all files in the current directory into a mp4 video container of the same name as the sources. The new filename will be derived from a basename (everything before the source file last '.') and an extension (everything after the source file last '.'). Target names will be 'basename'.mp4. Sources matching the target name will be renamed with a .bak extension prior to processing for safety. a CRF of 25 is harcoded in by preference but feel free to adjust as you desire." echo echo "You must choose the preset of your choice with a tradeoff of speed vs. quality" echo "(veryfast recommended for decent speed and decent quality)" echo "type a preset and press enter or bail and enter to quit now. Preset choices are:" echo "ultrafast superfast veryfast faster fast medium slow slower slowest" read preset echo "you chose $preset" if [ "$preset" != "bail" ] then for f in *.* do name=$(echo "$f" | sed 's/\.[^\.]*$//') ext=$(echo "$f" | sed 's/^.*\.//') target="$name.mp4" echo target = $target if [ "$f" = "$target" ]; then echo "$f=$target so moving source to backup file" mv "$f" "$f.bak"; if [ "$?" != "0" ]; then echo "error renaming $f" && exit fi avconv -i "$f.bak" -c:a copy -c:v libx264 -preset "$preset" -crf 25 "$target" if [ "$?" != "0" ]; then echo "error processing $f.bak" && exit fi else avconv -i "$f" -c:a copy -c:v libx264 -preset "$preset" -crf 25 "$target" if [ "$?" != "0" ]; then echo "error processing $f" && exit fi fi done fi
0
ответ дан 31 July 2018 в 12:21

Для Ubuntu 14.04 и новее

Вам понадобится avconv из libav-tools и ubuntu-limited-extras. Вы можете установить их, если у вас их нет уже с помощью команды:

sudo apt-get install libav-tools ubuntu-restricted-extras

Этот скрипт должен делать трюк, однако предполагается, что в нем есть только видео файлы указанная папка, в противном случае могут возникнуть непредвиденные последствия.

#!/bin/bash echo "This script will attempt to encode by re-encoding the video stream and copying the audio stream placing all files in the current directory into a mp4 video container of the same name as the sources. The new filename will be derived from a basename (everything before the source file last '.') and an extension (everything after the source file last '.'). Target names will be 'basename'.mp4. Sources matching the target name will be renamed with a .bak extension prior to processing for safety. a CRF of 25 is harcoded in by preference but feel free to adjust as you desire." echo echo "You must choose the preset of your choice with a tradeoff of speed vs. quality" echo "(veryfast recommended for decent speed and decent quality)" echo "type a preset and press enter or bail and enter to quit now. Preset choices are:" echo "ultrafast superfast veryfast faster fast medium slow slower slowest" read preset echo "you chose $preset" if [ "$preset" != "bail" ] then for f in *.* do name=$(echo "$f" | sed 's/\.[^\.]*$//') ext=$(echo "$f" | sed 's/^.*\.//') target="$name.mp4" echo target = $target if [ "$f" = "$target" ]; then echo "$f=$target so moving source to backup file" mv "$f" "$f.bak"; if [ "$?" != "0" ]; then echo "error renaming $f" && exit fi avconv -i "$f.bak" -c:a copy -c:v libx264 -preset "$preset" -crf 25 "$target" if [ "$?" != "0" ]; then echo "error processing $f.bak" && exit fi else avconv -i "$f" -c:a copy -c:v libx264 -preset "$preset" -crf 25 "$target" if [ "$?" != "0" ]; then echo "error processing $f" && exit fi fi done fi
0
ответ дан 2 August 2018 в 04:24

Для Ubuntu 14.04 и новее

Вам понадобится avconv из libav-tools и ubuntu-limited-extras. Вы можете установить их, если у вас их нет уже с помощью команды:

sudo apt-get install libav-tools ubuntu-limited-extras

Этот сценарий должен делать трюк, однако предположение состоит в том, что в рассматриваемой папке есть только видеофайлы, иначе могут возникнуть непредвиденные последствия.

  #! / bin / bash echo "Этот скрипт будет пытаться кодировать путем повторного кодирования видеопотока и копирования аудиопотока, помещая все файлы в текущую директорию в контейнер видео mp4  то же имя, что и источники. Новое имя файла будет выведено из базового имени (все до исходного файла last '.') и расширения (все после последнего исходного файла.). Целевые имена будут «basename'.mp4  Источники, соответствующие целевому имени, будут переименованы с расширением .bak до обработки для обеспечения безопасности. CRF из 25 кодируется по предпочтению, но не стесняйтесь настраивать, как вам хочется ».  echo echo "Вы должны выбрать предустановку по вашему выбору с компромиссным соотношением скорости и качества« эхо »(очень быстро рекомендуется для достойной скорости и достойного качества).« эхо »введите предустановку и нажмите« Ввод »или« Залог »и введите« Завершить ».  выбор: «эхо» сверхбыстрая сверхбыстрая очень быстрая скорость быстрее средняя медленная медленнее медленнее «читать предустановленное эхо» вы выбрали $ preset «если [« $ preset »! =« bail »], то для f в *. * do name = $ (echo  "$ f" | sed 's /\.[^\.]*$//') ext = $ (echo "$ f" | sed 's /^.*\.//') target = "$ name  .mp4 "echo target = $ target, если [" $ f "=" $ target "];  затем echo "$ f = $ target, чтобы перемещать источник в резервный файл" mv "$ f" "$ f.bak";  если ["$?"  ! = "0"];  затем echo «ошибка переименования $ f» & amp; & amp; & amp; & amp;  exit fi avconv -i "$ f.bak" -c: copy -c: v libx264 -preset "$ preset" -crf 25 "$ target", если ["$?"  ! = "0"];  затем echo "обработка ошибок $ f.bak" & amp; & amp; & amp;  exit fi else avconv -i "$ f" -c: copy -c: v libx264 -preset "$ preset" -crf 25 "$ target", если ["$?"  ! = "0"];  затем эхо-обработка ошибок $ f "& amp; & amp; & amp;  выход fi fi производства fi  
0
ответ дан 4 August 2018 в 20:56

Для Ubuntu 14.04 и новее

Вам понадобится avconv из libav-tools и ubuntu-limited-extras. Вы можете установить их, если у вас их нет уже с помощью команды:

sudo apt-get install libav-tools ubuntu-limited-extras

Этот сценарий должен делать трюк, однако предположение состоит в том, что в рассматриваемой папке есть только видеофайлы, иначе могут возникнуть непредвиденные последствия.

  #! / bin / bash echo "Этот скрипт будет пытаться кодировать путем повторного кодирования видеопотока и копирования аудиопотока, помещая все файлы в текущую директорию в контейнер видео mp4  то же имя, что и источники. Новое имя файла будет выведено из базового имени (все до исходного файла last '.') и расширения (все после последнего исходного файла.). Целевые имена будут «basename'.mp4  Источники, соответствующие целевому имени, будут переименованы с расширением .bak до обработки для обеспечения безопасности. CRF из 25 кодируется по предпочтению, но не стесняйтесь настраивать, как вам хочется ».  echo echo "Вы должны выбрать предустановку по вашему выбору с компромиссным соотношением скорости и качества« эхо »(очень быстро рекомендуется для достойной скорости и достойного качества).« эхо »введите предустановку и нажмите« Ввод »или« Залог »и введите« Завершить ».  выбор: «эхо» сверхбыстрая сверхбыстрая очень быстрая скорость быстрее средняя медленная медленнее медленнее «читать предустановленное эхо» вы выбрали $ preset «если [« $ preset »! =« bail »], то для f в *. * do name = $ (echo  "$ f" | sed 's /\.[^\.]*$//') ext = $ (echo "$ f" | sed 's /^.*\.//') target = "$ name  .mp4 "echo target = $ target, если [" $ f "=" $ target "];  затем echo "$ f = $ target, чтобы перемещать источник в резервный файл" mv "$ f" "$ f.bak";  если ["$?"  ! = "0"];  затем echo «ошибка переименования $ f» & amp; & amp; & amp; & amp;  exit fi avconv -i "$ f.bak" -c: copy -c: v libx264 -preset "$ preset" -crf 25 "$ target", если ["$?"  ! = "0"];  затем echo "обработка ошибок $ f.bak" & amp; & amp; & amp;  exit fi else avconv -i "$ f" -c: copy -c: v libx264 -preset "$ preset" -crf 25 "$ target", если ["$?"  ! = "0"];  затем эхо-обработка ошибок $ f "& amp; & amp; & amp;  выход fi fi производства fi  
0
ответ дан 6 August 2018 в 04:29

Для Ubuntu 14.04 и новее

Вам понадобится avconv из libav-tools и ubuntu-limited-extras. Вы можете установить их, если у вас их нет уже с помощью команды:

sudo apt-get install libav-tools ubuntu-limited-extras

Этот сценарий должен делать трюк, однако предположение состоит в том, что в рассматриваемой папке есть только видеофайлы, иначе могут возникнуть непредвиденные последствия.

  #! / bin / bash echo "Этот скрипт будет пытаться кодировать путем повторного кодирования видеопотока и копирования аудиопотока, помещая все файлы в текущую директорию в контейнер видео mp4  то же имя, что и источники. Новое имя файла будет выведено из базового имени (все до исходного файла last '.') и расширения (все после последнего исходного файла.). Целевые имена будут «basename'.mp4  Источники, соответствующие целевому имени, будут переименованы с расширением .bak до обработки для обеспечения безопасности. CRF из 25 кодируется по предпочтению, но не стесняйтесь настраивать, как вам хочется ».  echo echo "Вы должны выбрать предустановку по вашему выбору с компромиссным соотношением скорости и качества« эхо »(очень быстро рекомендуется для достойной скорости и достойного качества).« эхо »введите предустановку и нажмите« Ввод »или« Залог »и введите« Завершить ».  выбор: «эхо» сверхбыстрая сверхбыстрая очень быстрая скорость быстрее средняя медленная медленнее медленнее «читать предустановленное эхо» вы выбрали $ preset «если [« $ preset »! =« bail »], то для f в *. * do name = $ (echo  "$ f" | sed 's /\.[^\.]*$//') ext = $ (echo "$ f" | sed 's /^.*\.//') target = "$ name  .mp4 "echo target = $ target, если [" $ f "=" $ target "];  затем echo "$ f = $ target, чтобы перемещать источник в резервный файл" mv "$ f" "$ f.bak";  если ["$?"  ! = "0"];  затем echo «ошибка переименования $ f» & amp; & amp; & amp; & amp;  exit fi avconv -i "$ f.bak" -c: copy -c: v libx264 -preset "$ preset" -crf 25 "$ target", если ["$?"  ! = "0"];  затем echo "обработка ошибок $ f.bak" & amp; & amp; & amp;  exit fi else avconv -i "$ f" -c: copy -c: v libx264 -preset "$ preset" -crf 25 "$ target", если ["$?"  ! = "0"];  затем эхо-обработка ошибок $ f "& amp; & amp; & amp;  выход fi fi производства fi  
0
ответ дан 7 August 2018 в 22:38

Для Ubuntu 14.04 и новее

Вам понадобится avconv из libav-tools и ubuntu-limited-extras. Вы можете установить их, если у вас их нет уже с помощью команды:

sudo apt-get install libav-tools ubuntu-limited-extras

Этот сценарий должен делать трюк, однако предположение состоит в том, что в рассматриваемой папке есть только видеофайлы, иначе могут возникнуть непредвиденные последствия.

  #! / bin / bash echo "Этот скрипт будет пытаться кодировать путем повторного кодирования видеопотока и копирования аудиопотока, помещая все файлы в текущую директорию в контейнер видео mp4  то же имя, что и источники. Новое имя файла будет выведено из базового имени (все до исходного файла last '.') и расширения (все после последнего исходного файла.). Целевые имена будут «basename'.mp4  Источники, соответствующие целевому имени, будут переименованы с расширением .bak до обработки для обеспечения безопасности. CRF из 25 кодируется по предпочтению, но не стесняйтесь настраивать, как вам хочется ».  echo echo "Вы должны выбрать предустановку по вашему выбору с компромиссным соотношением скорости и качества« эхо »(очень быстро рекомендуется для достойной скорости и достойного качества).« эхо »введите предустановку и нажмите« Ввод »или« Залог »и введите« Завершить ».  выбор: «эхо» сверхбыстрая сверхбыстрая очень быстрая скорость быстрее средняя медленная медленнее медленнее «читать предустановленное эхо» вы выбрали $ preset «если [« $ preset »! =« bail »], то для f в *. * do name = $ (echo  "$ f" | sed 's /\.[^\.]*$//') ext = $ (echo "$ f" | sed 's /^.*\.//') target = "$ name  .mp4 "echo target = $ target, если [" $ f "=" $ target "];  затем echo "$ f = $ target, чтобы перемещать источник в резервный файл" mv "$ f" "$ f.bak";  если ["$?"  ! = "0"];  затем echo «ошибка переименования $ f» & amp; & amp; & amp; & amp;  exit fi avconv -i "$ f.bak" -c: copy -c: v libx264 -preset "$ preset" -crf 25 "$ target", если ["$?"  ! = "0"];  затем echo "обработка ошибок $ f.bak" & amp; & amp; & amp;  exit fi else avconv -i "$ f" -c: copy -c: v libx264 -preset "$ preset" -crf 25 "$ target", если ["$?"  ! = "0"];  затем эхо-обработка ошибок $ f "& amp; & amp; & amp;  выход fi fi производства fi  
0
ответ дан 10 August 2018 в 10:45

Для Ubuntu 14.04 и новее

Вам понадобится avconv из libav-tools и ubuntu-limited-extras. Вы можете установить их, если у вас их нет уже с помощью команды:

sudo apt-get install libav-tools ubuntu-limited-extras

Этот сценарий должен делать трюк, однако предположение состоит в том, что в рассматриваемой папке есть только видеофайлы, иначе могут возникнуть непредвиденные последствия.

  #! / bin / bash echo "Этот скрипт будет пытаться кодировать путем повторного кодирования видеопотока и копирования аудиопотока, помещая все файлы в текущую директорию в контейнер видео mp4  то же имя, что и источники. Новое имя файла будет выведено из базового имени (все до исходного файла last '.') и расширения (все после последнего исходного файла.). Целевые имена будут «basename'.mp4  Источники, соответствующие целевому имени, будут переименованы с расширением .bak до обработки для обеспечения безопасности. CRF из 25 кодируется по предпочтению, но не стесняйтесь настраивать, как вам хочется ».  echo echo "Вы должны выбрать предустановку по вашему выбору с компромиссным соотношением скорости и качества« эхо »(очень быстро рекомендуется для достойной скорости и достойного качества).« эхо »введите предустановку и нажмите« Ввод »или« Залог »и введите« Завершить ».  выбор: «эхо» сверхбыстрая сверхбыстрая очень быстрая скорость быстрее средняя медленная медленнее медленнее «читать предустановленное эхо» вы выбрали $ preset «если [« $ preset »! =« bail »], то для f в *. * do name = $ (echo  "$ f" | sed 's /\.[^\.]*$//') ext = $ (echo "$ f" | sed 's /^.*\.//') target = "$ name  .mp4 "echo target = $ target, если [" $ f "=" $ target "];  затем echo "$ f = $ target, чтобы перемещать источник в резервный файл" mv "$ f" "$ f.bak";  если ["$?"  ! = "0"];  затем echo «ошибка переименования $ f» & amp; & amp; & amp; & amp;  exit fi avconv -i "$ f.bak" -c: copy -c: v libx264 -preset "$ preset" -crf 25 "$ target", если ["$?"  ! = "0"];  затем echo "обработка ошибок $ f.bak" & amp; & amp; & amp;  exit fi else avconv -i "$ f" -c: copy -c: v libx264 -preset "$ preset" -crf 25 "$ target", если ["$?"  ! = "0"];  затем эхо-обработка ошибок $ f "& amp; & amp; & amp;  выход fi fi производства fi  
0
ответ дан 13 August 2018 в 17:18

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

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