Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Видео и аудио: обработка и кодирование (http://forum.oszone.net/forumdisplay.php?f=45)
-   -   [решено] "брак" при склейке видео через ffmpeg (http://forum.oszone.net/showthread.php?t=349145)

9119 04-07-2021 23:58 2961425

"брак" при склейке видео через ffmpeg
 
Добрый.
обрабатываю видео 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 2961437

Прочтите статью и экспериментируйте.
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 2961452

Цитата:

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

как я понял это чтобы склейка была без потери качества (хоть мне это и не очень важно), и к тому же "concat:" не работает с Mp4
а обычный concat требует предварительного создания list.txt (хотя это тоже не важно)

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

DJ Mogarych 05-07-2021 16:00 2961477

Цитата:

Цитата 9119
чтобы склейка была без потери качества »

Вы одним перекодированием в TS теряете гораздо больше.

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

9119 06-07-2021 11:51 2961518

DJ Mogarych,

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


Время: 01:27.

Время: 01:27.
© OSzone.net 2001-