Перейти к содержимому



Сжимаем фильмы с помощью ffmpeg


  • Вы не можете ответить в тему
  • Вы не можете создать новую тему
Сообщений в теме: 32

#21 OFFLINE   Al71

 

    Долгожитель

  • [eMule-Rus]
  • сообщений: 1 866
    Последний визит:
    Сегодня, 10:50
  • Пол:Мужчина
  • Откуда:Москва
 

Отправлено 10 Июль 2020 - 12:29

Достаточно указать имя или шаблон с расширением при запуске, любой из этих форматов перекодируется в h264/mkv.

#22 OFFLINE   UrryMan

 

    душевный парень

  • Модераторы
  • сообщений: 1 389
    Последний визит:
    05 авг 2020 12:18
  • Пол:Мужчина
  • Откуда:С-Пб
 

Отправлено 11 Июль 2020 - 04:42

Просмотр сообщенияAl71 сказал:

= ~1565 kBit/s (суммарный битрейт)
Для такого битрейта или 1024х576 или 720х576(16:9).
В первом варианте лучше задать к-во выше среднего.

#23 OFFLINE   Damian

 

    Резидент

  • Постоянные посетители
  • PipPipPipPipPipPipPipPip
  • сообщений: 701
    Последний визит:
    Сегодня, 14:51
  • Пол:Мужчина
 

Отправлено 11 Июль 2020 - 13:16

UrryMan, а есть вообще такие устройства,камеры которые изначально в нормальный формат,сжатый пишут?

#24 OFFLINE   UrryMan

 

    душевный парень

  • Модераторы
  • сообщений: 1 389
    Последний визит:
    05 авг 2020 12:18
  • Пол:Мужчина
  • Откуда:С-Пб
 

Отправлено 11 Июль 2020 - 14:35

Просмотр сообщенияDamian сказал:

а есть вообще такие устройства,камеры которые изначально в нормальный формат,сжатый пишут?

Думаю в том формате, что нужно вам, пишут аппараты 7-10 летней давности.
На современных аппаратах самым низшим качеством считается 1280х720.

Может вместо камеры лучше подумать о хранилище на пару терабайт ?

#25 OFFLINE   Damian

 

    Резидент

  • Постоянные посетители
  • PipPipPipPipPipPipPipPip
  • сообщений: 701
    Последний визит:
    Сегодня, 14:51
  • Пол:Мужчина
 

Отправлено 13 Июль 2020 - 00:47

Просмотр сообщенияUrryMan (11 Июль 2020 - 14:35) писал:

Может вместо камеры лучше подумать о хранилище на пару терабайт ?
у меня нет таких материальных возможностей.Al71, напомни пожалуйста как кусок нужный из видео перекодировать?В эту строку что нужно добавить?
ffmpeg -i "$fn" -vf scale=1280:720 -c:v h264 -crf 23 -preset medium -map 0:0 -c:a aac -b:a 128k -map 0:1 "$newfn"
мне нужно к примеру вот такой отрезок : 00:00:00 - 00:02:05 сделать.Как эту строку отредактировать?Камера хорошая и звук пишет хорошо,одно жаль ракурс правильный не поймаешь,даже если в руках держать, а так и из кармана хватает неплохо.

#26 OFFLINE   Al71

 

    Долгожитель

  • [eMule-Rus]
  • сообщений: 1 866
    Последний визит:
    Сегодня, 10:50
  • Пол:Мужчина
  • Откуда:Москва
 

Отправлено 13 Июль 2020 - 01:26

Просмотр сообщенияDamian сказал:

напомни пожалуйста как кусок нужный из видео перекодировать?В эту строку что нужно добавить?

Цитата

Чтобы иметь представление, как будет выглядеть видео, не кодируя файл целиком, используйте опции -ss и -t/-to.
-ss задает время начала фрагмента в секундах либо в формате HH:MM:SS от начала файла.
-t -- продолжительность фрагмента.
-to -- время окончания фрагмента, отсчитываемое от начала файла.

Так как твой фрагмент идет от начала файла, можно использовать разные записи, например:
-t 125
-to 00:02:05
В общем случае:
-ss 00:00:00 -to 00:02:05

ffmpeg -i "$fn" -vf scale=1280:720 -c:v h264 -crf 23 -preset medium -ss 00:00:00 -to 00:02:05 -map 0:0 -c:a aac -b:a 128k -map 0:1 "$newfn"


#27 OFFLINE   Al71

 

    Долгожитель

  • [eMule-Rus]
  • сообщений: 1 866
    Последний визит:
    Сегодня, 10:50
  • Пол:Мужчина
  • Откуда:Москва
 

Отправлено 13 Июль 2020 - 15:10

Просмотр сообщенияDamian сказал:

Для склеивания какая-то другая команда нужна по всей видимости.У меня есть уже готовые .mkv: DVO00000,DVO00003,DVO00005, исходные avi я не храню,удаляю по причине размера большого,можно их с помощью FFMPEG объединить?

Нужно создать файл следующего содержания:
file DVO00000.mkv
file DVO00003.mkv
file DVO00005.mkv

Назовем его flist и выполним следующую команду:
ffmpeg -f concat -safe 0 -i flist -c copy output.mkv

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

#28 OFFLINE   Damian

 

    Резидент

  • Постоянные посетители
  • PipPipPipPipPipPipPipPip
  • сообщений: 701
    Последний визит:
    Сегодня, 14:51
  • Пол:Мужчина
 

Отправлено 14 Июль 2020 - 02:11

Я бы рад написать,но боюсь дальше ше банг дело не пойдёт.
#!/bin/sh
ffmpeg -f concat -safe 0 -i flist -c copy output.mkv

это явно не оно. Опция -f это и есть команда для объдинения,хотелось бы мне научиться скрипты писать,но что-то не выходит пока,синтаксисом плохо владею,на уровне команд для установки программ,драйверов итп,ещё знаю а дальше нет.

#29 OFFLINE   Al71

 

    Долгожитель

  • [eMule-Rus]
  • сообщений: 1 866
    Последний визит:
    Сегодня, 10:50
  • Пол:Мужчина
  • Откуда:Москва
 

Отправлено 14 Июль 2020 - 06:41

Держи:
#!/bin/bash
flist="$(ls *.mkv | sort -V)"
for f in $flist
do
echo "file '$PWD/$f'" >>flist
done
ffmpeg -f concat -safe 0 -i flist -c copy z\ out.mkv
rm flist

Объединяет все mkv файлы в текущем каталоге в порядке увеличения индексов и пишет результат в "z out.mkv". Только имена исходных файлов должны быть без пробелов, иначе не сработает.

#30 OFFLINE   Damian

 

    Резидент

  • Постоянные посетители
  • PipPipPipPipPipPipPipPip
  • сообщений: 701
    Последний визит:
    Сегодня, 14:51
  • Пол:Мужчина
 

Отправлено 14 Июль 2020 - 08:23

Сделал,запускаю так:
./flist.sh z out.mkv
только у меня файл flist после этого исчез.Первый был просто текстовый документ а второй получается скрипт и он его заменил.Надо наверное все скрипты в папку Scripts закинуть,и запускать уже к примеру по адресу
./Scripts/avitomkv.sh *avi
У меня их уже очень много,не так как у тебя но всё же есть.А пардон я невнимательно скрипт изучил,там в конце команда которая файл удаляет. Как бы мне научиться языком овладеть,там только баш нужен?

Сообщение отредактировал Damian: 14 Июль 2020 - 13:36


#31 OFFLINE   Al71

 

    Долгожитель

  • [eMule-Rus]
  • сообщений: 1 866
    Последний визит:
    Сегодня, 10:50
  • Пол:Мужчина
  • Откуда:Москва
 

Отправлено 15 Июль 2020 - 09:51

Просмотр сообщенияDamian сказал:

там только баш нужен?

В данном случае непринципиально.

#32 OFFLINE   Damian

 

    Резидент

  • Постоянные посетители
  • PipPipPipPipPipPipPipPip
  • сообщений: 701
    Последний визит:
    Сегодня, 14:51
  • Пол:Мужчина
 

Отправлено 15 Июль 2020 - 13:55

Просмотр сообщенияAl71 (15 Июль 2020 - 09:51) писал:

В данном случае непринципиально.

Так может и взял бы надо мной шэфство.

#33 OFFLINE   Al71

 

    Долгожитель

  • [eMule-Rus]
  • сообщений: 1 866
    Последний визит:
    Сегодня, 10:50
  • Пол:Мужчина
  • Откуда:Москва
 

Отправлено 18 Июль 2020 - 21:41

 Damian сказал:

Так может и взял бы надо мной шэфство.

Для шефа я слишком "много" знаю.

Разница между sh и bash

А скрипт простейший, в твоем случае его можно сделать еще проще:

rm flist

for f in *.mkv
do
echo "file '$PWD/$f'" >>flist
done

ffmpeg -f concat -safe 0 -i flist -c copy z\ out.mkv

- Строку Шебанга ( #!/bin/bash) в данном случае можно не указывать, так как неважно, какой интерпретатор будет использоваться.

-Удаление списка (rm flist) здесь для того, чтобы при повторном запуске новые строки не добавлялись к старым. Команду можно поставить как в начале, так и в конце скрипта. В последнем случае список не сохраняется.

-Дальше идет цикл (for ... done), который последовательно добавляет к списку строки вида
file '/полный путь к текущему каталогу/имя файла'
для всех файлов  с расширением mkv в папке.

-В конце запускается собственно ffmpeg для объединения файлов по списку. Судя по документации к ffmpeg, возможно указание списка прямо в строке (без файла), но у меня этот способ не работал.





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных