Войти

Показать полную графическую версию : [решено] "брак" при склейке видео через ffmpeg


9119
04-07-2021, 23:58
Добрый.
обрабатываю видео mp4 в ffmpeg.
Первоначальные видео делаются в Camtasia.
Потом от каждого отрезается 7 секунд в начале.
#ШАПКА
$ffmpeg = "E:\!!Youtube\автосборка_роликов\ffmpeg\ffmpeg\bin\ffmpeg.exe" #путь до ffmpeg.exe
$cut = "7" #количество секунд, которое нужно обрезать в начале каждого ролика

start-process "$ffmpeg" -arg "-i $сut_name1.mp4 -ss $cut -vcodec copy -acodec copy $сut_name1.mp4.mp4" -Wait -NoNewWindow

start-process "$ffmpeg" -arg "-i $сut_name2.mp4 -ss $cut -vcodec copy -acodec copy $сut_name2.mp4.mp4" -Wait -NoNewWindow

start-process "$ffmpeg" -arg "-i $сut_name3.mp4 -ss $cut -vcodec copy -acodec copy $сut_name3.mp4.mp4" -Wait -NoNewWindow

start-process "$ffmpeg" -arg "-i $сut_name4.mp4 -ss $cut -vcodec copy -acodec copy $сut_name4.mp4.mp4" -Wait -NoNewWindow
Потом перекод в ts, потом склейка.
#перекодируем все файлы перед склейкой
start-process "$ffmpeg" -arg "-i $name1 -acodec copy -vcodec copy -vbsf h264_mp4toannexb -f mpegts $name1.ts" -Wait -NoNewWindow

start-process "$ffmpeg" -arg "-i $сut_name1.mp4.mp4 -acodec copy -vcodec copy -vbsf h264_mp4toannexb -f mpegts $сut_name1.ts" -Wait -NoNewWindow

start-process "$ffmpeg" -arg "-i $сut_name2.mp4.mp4 -acodec copy -vcodec copy -vbsf h264_mp4toannexb -f mpegts $сut_name2.ts" -Wait -NoNewWindow

start-process "$ffmpeg" -arg "-i $сut_name3.mp4.mp4 -acodec copy -vcodec copy -vbsf h264_mp4toannexb -f mpegts $сut_name3.ts" -Wait -NoNewWindow

start-process "$ffmpeg" -arg "-i $сut_name4.mp4.mp4 -acodec copy -vcodec copy -vbsf h264_mp4toannexb -f mpegts $сut_name4.ts" -Wait -NoNewWindow


#Cобираем видео

start-process "$ffmpeg" -arg "-i concat:$name1.ts|$сut_name1.ts|$сut_name2.ts|$сut_name3.ts|$сut_name4.ts -vcodec copy -acodec copy $name1_path\!8_минут_видео.mp4" -Wait -NoNewWindow



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

Как это исправить в финальном файле? Или что сделать чтобы в нем этого не было? Посредством ffmpeg.
Спасибо.

DJ Mogarych
05-07-2021, 09:35
Прочтите статью и экспериментируйте.
https://trac.ffmpeg.org/wiki/Seeking

Ещё оттуда:
Using -ss as input option together with -c:v copy might not be accurate


Чтобы упростить задачу в будущем, захватывайте в Камтазии видео в формате, где каждый кадр ключевой, например, MJPEG.

И зачем перекодировать в .ts?

9119
05-07-2021, 11:59
И зачем перекодировать в .ts? »
как я понял это чтобы склейка была без потери качества (хоть мне это и не очень важно), и к тому же "concat:" не работает с Mp4
а обычный concat требует предварительного создания list.txt (хотя это тоже не важно)

Мне бы получить желаемый результат)

DJ Mogarych
05-07-2021, 16:00
чтобы склейка была без потери качества »
Вы одним перекодированием в TS теряете гораздо больше.

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

9119
06-07-2021, 11:51
DJ Mogarych,

все таки сделал через ffmpeg.
c использованием команды -copyts. результат меня устроил.




© OSzone.net 2001-2012