FFmpeg -ss -t (seek) output tidak akurat, ada solusi? [duplikat]

5

Misi saya adalah membuat segmen video kecil dari yang lebih besar, lalu menggabungkannya menjadi satu file. Setelah banyak mencari dan membaca, saya memutuskan untuk menggunakan perintah berikutnya

ffmpeg -y -ss 03:00 -i myvideo.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts -t 00:05 segment01.ts

Masalah saya; berharap Anda memiliki solusi untuk menyelesaikannya:

1- Seperti yang Anda lihat, durasi output yang diinginkan adalah 5 detik yang tidak saya dapatkan sama sekali. Saya mendapat durasi berbeda untuk segmen yang berbeda; 4, 6, 8, 9 detik.

** Setelah mencari saya menemukan itu terjadi karena masalah keyframes.

Tapi saya tidak mengerti apa yang harus dilakukan dengan durasi segmen.

Saya benar-benar mengerti bahwa posisi pencarian bisa berbeda karena keyframe, tetapi mengapa durasinya?

2-Setelah membaca lebih banyak, saya memutuskan untuk menggunakan perintah -fs untuk membatasi ukuran segmen. Entah bagaimana itu berhasil kecuali satu hal.

Segmen memiliki seperti hang kecil (drop frame! Saya tidak tahu) pada akhirnya, membuat hasil akhir ketika bergabung bersama adalah mengerikan. Apa yang bisa saya lakukan untuk menyingkirkan "hang" ini

Ada Ide?

** Catatan: Saya sudah mencoba keduanya (input / output) mencari tetapi tidak ada yang berubah.

pengguna2132188
sumber

Jawaban:

1

Ini sering terjadi ketika menggunakan -ssdan -tbersama dengan -c copyatau -codec copy.

Jangan gunakan copy, dan menggunakan codec lain atau hanya tidak menentukan -c, -codecpilihan. dan ini tidak akan terjadi.

misalnya: ffmpeg -y -ss 03:00 -i myvideo.mp4 -c:v libx264 -f mpegts -t 00:05 segment01.tsatau semacamnya.

Behroozfar
sumber