Bagaimana untuk Betulkan Ralat Masa Lalu Terlalu Besar 'di FFmpeg?

FFmpeg adalah percuma untuk digunakan dan program sumber terbuka yang digunakan untuk mengendalikan Video, Audio, dan aliran multimedia lain. Program ini telah direka untuk mengendalikan pengendalian berasaskan baris arahan video dan audio. Walau bagaimanapun, baru-baru ini, banyak laporan telah datang dari Ralat Masa Lalu Terlalu Besar semasa mengodkan atau memindahkan video.

Logo FFmpeg

Apa yang Menyebabkan Kesilapan Masa Lalu Terlalu Besar dalam FFmpeg?

Selepas menerima banyak laporan dari pelbagai pengguna, kami memutuskan untuk menyiasat isu itu dan merangka satu set penyelesaian untuk menyelesaikannya sepenuhnya. Juga, kita melihat ke dalam sebab-sebab yang disebabkan oleh kesilapan ini dicetuskan dan disenaraikan seperti berikut:

  • Input Framerate Hilang: Dalam kebanyakan kes, isu ini disebabkan kerana framerate input tidak dimasukkan untuk imej. Ini mengakibatkan program dengan asumsi bahawa framerate input adalah 25 fps yang boleh menyebabkan masalah jika itu tidak.
  • Tetapan Penyegerakan tidak Dilaksanakan: Dengan kebanyakan pengguna, melaksanakan tetapan penyegerakan tertentu menetapkan masalah ini. Kadang kala, bingkai mungkin tidak dapat diselaraskan dengan betul kerana bingkai tertentu mungkin dijatuhkan dan ralat ini mungkin dicetuskan.

Sekarang bahawa anda mempunyai pemahaman asas tentang isu ini, kami akan bergerak ke arah penyelesaian. Pastikan untuk melaksanakannya dalam urutan tertentu di mana ia dibentangkan untuk mengelakkan konflik.

Penyelesaian 1: Menambah Bingkai Input

Jika framerate input video tidak ditambah, mungkin menyebabkan beberapa bingkai semakin menurun dan ralat dicetuskan. Oleh itu, dalam langkah ini, kita akan menambah bingkai input untuk itu:

  1. Perhatikan konvokesyen yang anda gunakan untuk menukar video, mungkin sama seperti yang berikut
     ffmpeg -i% 05d.png -r 24 -c: v libx264 -crf 5 out.mkv 
  2. Sekarang tambahkan framerate ke konvokesyen yang digunakan sebagai berikut
     ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv 
  3. Semak untuk melihat sama ada isu itu berterusan.

Penyelesaian 2: Menggunakan Bendera Penyegerakan

Menambah bendera Sync dapat membantu menyegerakkan output dan video input mengikut framerates awal video. Oleh itu, Jika perintah penyegerakan tidak ditambah, mungkin frame tidak disegerakkan dengan betul. Dalam langkah ini, kami akan menambah arahan penyegerakan

  1. Pada peringkat ini, anda mesti menggunakan konvokesyen berikut
     ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv 
  2. Walau bagaimanapun, sebaliknya, gunakan konvokesyen berikut
     ffmpeg -framerate 24 -i% 05d.png -c: v libx264 -crf 5 out.mkv -async 1 -vsync 1 
  3. Perhatikan bahawa kami baru sahaja menambah " -async 1 -vsync1 " ke konvokesyen dan ini perlu ditambah pada akhir konvokesyen yang anda gunakan.

    Nota: Konvokesyen awal anda mungkin berbeza daripada yang digunakan sebagai contoh. Walau bagaimanapun, perubahan yang ditambahkan pada konvokesyen itu tidak sepatutnya berbeza.

Artikel Yang Menarik