Saya memiliki beberapa file video dalam MPEG-PS\MPEG-4 Visual\MPEG Audio
format, file-file itu memiliki kode waktu yang rusak yang mengakibatkan sebagian besar pemain tidak dapat memainkannya dengan benar. Ketika saya mencoba untuk membukanya dengan VLC, ia memutar video dengan baik tetapi indikator durasi total file berubah terus-menerus, melompat-lompat.
Saya mencoba hanya mengonversi file MPEG-4\AVC\AAC
dengan perintah ini:
ffmpeg.exe -nostdin -y -loglevel info -i "D:\input.mp4" -f mp4 "D:\output.mp4"
Tapi itu menghasilkan file dengan durasi yang salah. Pemutaran aliran video baik-baik saja tetapi durasi umum dari file yang dihasilkan adalah beberapa jam lebih lama dari yang seharusnya, artinya ada beberapa jam frame hitam dan keheningan pada akhirnya.
Apakah ada cara untuk mengkonversi MPEG-PS\MPEG-4 Visual\MPEG Audio
ke MPEG-4\AVC\AAC
dengan mengoreksi atau membuat garis waktu baru?
sumber
ffmpeg.exe -nostdin -y -i "D:\input.mp4" -fflags +genpts -f mp4 "D:\output.mp4"
Jawaban:
Anda memiliki dua kemungkinan:
concat
input: Klip yang benar sangat pendek (misalnya 1 Frame hitam) dan kemudian klip yang rusak. Dengan sebuahconcat
input, ffmpeg akan menggunakan cap waktu dari input pertama, kemudian menyesuaikan cap waktu berikut untuk menambahkannya dengan mulus.Anda mungkin juga ingin menggunakan
-c copy
parameter untuk menghindari pengodean ulang jika tidak perlu.sumber
-i file.mp4 -i file.mp4 -map [0:a] -map [1:v] -c copy -shortest