Dividir, re-codificar e unir arquivos de vídeo resulta em clicar em áudio

1

Queremos codificar arquivos de vídeo grandes com mais rapidez. Para tornar a codificação mais rápida, estamos usando vários servidores de codificação. Abaixo está o nosso processo de codificação de fluxo

  1. Primeiramente, dividimos o vídeo em pequenos segmentos usando o comando abaixo

    ffmpeg -i F:\video_data_setk_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. Em seguida, dividimos esses segmentos entre vários servidores de codificação Cada servidor de codificação recodifica o segmento usando o comando abaixo

    ffmpeg -hide_banner -i F:\video_data_set\test_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_4k_compressed_1.mp4

  3. Quando todos os segmentos tiverem recodificado, nós os unimos para criar um único arquivo usando o comando abaixo

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

Tudo está com bom desempenho, mas o problema que enfrentamos é que, após cada segmento, há som de clique na saída de áudio.

Por exemplo, codifiquei 5 segmentos com duração de 6,6,3,6 e 6 segundos quando me juntei a eles usando o comando acima mencionado. O vídeo de saída tem um som de clique em 6,12,15 e 21 segundos de vídeo.

Você pode, por favor, me ajudar e informar qual é a causa desse som de clique e como consertar e remover esse som de clique do vídeo de saída.

    
por Faraz Ahmed 28.03.2018 / 15:44

1 resposta

1

Esse é um efeito bem conhecido: o -segment divide o vídeo em um ponto de entrada de vídeo válido (ou seja, um quadro I), mas nem sempre em um ponto de entrada de áudio válido.

A melhor maneira de contornar isso é dividir o vídeo e o áudio na primeira etapa:

ffmpeg -i F:\video_data_setk_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

prossiga com os segmentos de vídeo como no seu fluxo de trabalho atual.

Para a etapa final use

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_setk_compressed_1.mp4

Para adicionar novamente o áudio.

    
por 28.03.2018 / 15:52