Я пытаюсь использовать FFmpeg, чтобы разделить различные клипы, объединить их, а затем перекодировать объединенный поток. Вот командная строка, которую я хотел бы использовать с 2 входными клипами (на самом деле я хотел бы использовать более 2, но для иллюстрации этой проблемы достаточно 2):
./ffmpeg -y -noautorotate -ss 4.9 -i in0.ts -noautorotate -i in1.ts \
-threads 0 -map_chapters -1 -write_tmcd 0 \
-metadata location= -max_muxing_queue_size 2000 -f mp4 \
-movflags faststart -filter_complex "[0:v:0]yadif=deint=interlaced,scale=1280:720:flags=bicubic,setdar=1.7777778[v0];[1:v:0]yadif=deint=interlaced,scale=1280:720:flags=bicubic,setdar=1.7777778[v1];[v0][0:a:0][v1][1:a:0]concat=n=2:v=1:a=1[cat_v][cat_a]"
-map "[cat_a]" -acodec aac -ac 2 -ar 44100 -b:a 160k -async 1
-sn -map "[cat_v]" -vcodec libx264 -profile:v baseline -level 4 -b:v \
5400k -preset medium -x264opts ref=3:keyint=90 \
-r 30000/1001 -vsync 1 -metadata:s:v rotate= -pix_fmt yuv420p outputfile01.mp4
Но FFmpeg зависает и застревает в кадре 0. Последний ключевой кадр in0.ts
имеет значение 4 с. Если бы я изменил -ss 4.9
на -ss X
, где X
<= 4.0, то это не проблема. </p>
Моя версия FFmpeg - 3.3. Я знаю, что эта проблема не существует в FFmpeg 4.0.x и далее или в FFmpeg 3.2.x, но существует в 3.3.x и 3.4.x. Может кто-нибудь помочь мне точно понять, какая ошибка была введена в 3.3.x и 3.4.x, что есть эта проблема?