1

Мы хотим быстрее кодировать большие видеофайлы. Чтобы ускорить кодирование, мы используем несколько серверов кодирования. Ниже приведен наш процесс кодирования потока

  1. Сначала мы разбиваем видео на маленькие сегменты, используя команду ниже

    ffmpeg -i F:\video_data_set\4k_compressed.mp4 -f segment -segment_time 5 -segment_start_number 1 -codec copy -copyts -avoid_negative_ts 1 F:\video_data_set\test\%d_4k_compressed.mp4

  2. Затем мы разделяем эти сегменты между несколькими серверами кодирования. Каждый сервер кодирования перекодирует сегмент, используя следующую команду

    ffmpeg -hide_banner -i F:\video_data_set\test\1_4k_compressed.mp4 -c:a aac -ar 44100 -b:a 128k -c:v libx264 -x264opts nal-hrd=cbr:force-cfr=1 -pix_fmt yuv420p -profile:v baseline -level 3.0 -vf "scale=1280:-2,setdar=16:9" -b:v 3.9M -minrate 3.9M -maxrate 3.9M -bufsize 7.8M -preset ultrafast -crf 18 -r 30 -g 30 -threads 8 F:\video_data_set\test\1_4k_compressed_1.mp4

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

    ffmpeg -hide_banner -f concat -safe 0 -i F:\video_data_set\test\files_2.txt -c copy -threads 8 F:\video_data_set\4k_compressed_1.mp4

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

Например, я закодировал 5 сегментов длительностью 6, 6, 6, 6 и 6 секунд, когда я присоединился к ним, используя вышеупомянутую команду, у выходного видео есть звук щелчка при 6,12,15 и 21 секунде видео.

Не могли бы вы помочь мне и сообщить мне, что является причиной этого звука щелчка и как исправить и удалить этот звук щелчка из выходного видео.

1 ответ1

1

Это хорошо известный эффект: -segment разбивает видео на допустимую точку входа видео (т.е. I-кадр), но не всегда на действительную точку входа аудио.

Лучший способ обойти это - разделить видео и аудио на первом шаге:

ffmpeg -i F:\video_data_set\4k_compressed.mp4 -f segment -segment_time 5 -segment_start_number 1 -c:v copy -an -copyts -avoid_negative_ts 1 F:\video_data_set\test\%d_4k_compressed.mp4 -vn -c:a aac -ar 44100 -b:a 128k F:\video_data_set\test\audio.m4a

затем перейдите к фрагментам видео, как в текущем рабочем процессе.

Для последнего шага используйте

ffmpeg -hide_banner -f concat -safe 0 -i F:\video_data_set\test\files_2.txt -i F:\video_data_set\test\audio.m4a -map 0:v -map 1:a -c copy -threads 8 F:\video_data_set\4k_compressed_1.mp4

Чтобы заново добавить аудио.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .