Perbaiki file dan streaming yang buruk dengan ffmpeg sehingga VLC dan pemain lain tidak akan macet


17

Itu sering terjadi pada saya sehingga saya bisa berakhir di file video yang rusak:

  • video diunduh dari sumber resmi tetapi dengan torrent dan karena alasan tertentu tidak semua bagian ada di .mkv, .ts atau .mp4
  • catatan dalam format .ts di mana pada titik tertentu data hilang
  • menyalin video dari hard drive lama dengan sektor yang rusak

Ketika saya memutar video ini dengan VLC atau pemain lain, mereka memutar sampai titik tertentu dan kemudian langsung keluar. Kadang-kadang saya dapat mencoba untuk melewatkan bagian yang buruk tetapi saya dapat bertemu dengan sektor buruk lainnya dan memiliki insta-berhenti lagi.

Pertanyaan adalah:

Bisakah saya memperbaiki masalah ini (saya kira terkait stream dan keyframe) dengan ffmpeg dan mungkin secara c-copy jadi saya belum mengkompres ulang semuanya?

Apa yang ingin saya capai adalah video panjang penuh di mana bagian yang hilang dilewati, saya lebih suka kesalahan daripada memiliki video saya crash.


Jawaban:


26

Jika sebagian file berada di sektor yang secara fisik buruk, atau karena alasan apa pun, OS tidak dapat melayani seluruh file ke FFmpeg, maka FFmpeg secara alami tidak dapat melakukan apa pun tentang itu. Anda harus mendapatkan utilitas yang dapat mengabaikan bagian-bagian itu dan menulis bagian yang dapat diselamatkan ke file baru, seperti ddrescue .

Sekarang, jika protokol file bukan penyebab kesalahan, Anda dapat mencoba

ffmpeg -err_detect ignore_err -i video.mkv -c copy video_fixed.mkv

1
Ini berfungsi, tetapi gagal tanpa -c copy. Mengejutkan bahwa itu tidak berfungsi selama pengodean ulang.
intuited

Bahkan dengan itu, saya masih mendapatkan Invalid data found when processing input- dan ffmpeg menyerah.
Mikhail T.

Solusi yang bagus ... jika moov atom (pada file MP4) masih ada di suatu tempat. Bagaimana jika tidak ada di sana?
Gwyneth Llewelyn

Ini bekerja pada akhirnya dengan kebaikan mengejutkan :)
shirish

5

Dalam mencari jawaban yang lebih baik, cara yang mungkin bisa dilakukan adalah:

ffmpeg -i video.mkv -c copy video_fixed.mkv

Namun saya cukup yakin ada beberapa opsi tambahan yang dapat membuat hasilnya lebih baik ..


1
Bekerja untuk saya setiap kali saya memiliki beberapa masalah dengan data meta, cap waktu, atau info wadah. Dan itu sangat cepat, biasanya lebih cepat dari 400x kecepatan putar.
user24601

Perintah ini menyelamatkan pantatku, terus terang.
neverMind9
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.