[решено] "брак" при склейке видео через ffmpeg

Ответить
Аватара пользователя
9119

[решено] "брак" при склейке видео через ffmpeg

Сообщение 9119 »

Добрый.

обрабатываю видео 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

Re: [решено] "брак" при склейке видео через ffmpeg

Сообщение DJ Mogarych »

Прочтите статью и экспериментируйте.

https://trac.ffmpeg.org/wiki/Seeking




Ещё оттуда:


Цитата:



Using -ss as input option together with -c:v copy might not be accurate





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



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

Re: [решено] "брак" при склейке видео через ffmpeg

Сообщение 9119 »

Цитата DJ Mogarych:



И зачем перекодировать в .ts?
[решено] "брак" при склейке видео через ffmpeg




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

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



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

Re: [решено] "брак" при склейке видео через ffmpeg

Сообщение DJ Mogarych »

Цитата 9119:



чтобы склейка была без потери качества
[решено] "брак" при склейке видео через ffmpeg




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



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

Re: [решено] "брак" при склейке видео через ffmpeg

Сообщение 9119 »

DJ Mogarych,



все таки сделал через ffmpeg.

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

Вернуться в «Видео и аудио: обработка и кодирование»