Saya menjalankan perintah berikut untuk mengonversi video mp4 ke format VP8 / Webm:
ffmpeg -y -i lists.mp4 -f webm -vcodec libvpx -vb 600k -r 20
-acodec libvorbis -ab 64k -ac 1 lists.webm
Ketika saya membukanya di VLC dan mencoba mencari titik yang berbeda dalam video, pencariannya adalah "quantised". Maksud saya ada 3 atau 4 poin dalam video bahwa pencari "terkunci", misalnya jika saya mengklik sesuatu dari 06:30 to 10:30
itu akan berusaha untuk06:30
Saya yakin masalahnya adalah sesuatu yang berkaitan dengan cara ffmpeg dikompilasi. Miro Video Converter di bawah Windows, yang dilengkapi dengan ffmpeg, menggunakan perintah:
ffmpeg -y -i lists.mp4 -f webm -vcodec libvpx -acodec libvorbis -crf lists.webm
Output dari Miro tidak dihitung dalam VLC, tetapi perintah yang sama pada instalasi linux saya tidak. Oleh karena itu harus ada sesuatu dengan versi ffmpeg atau cara kompilasi.
Adakah yang tahu tentang ini? Output debug berikut
Info debug untuk linux ffmpeg:
ffmpeg version N-35110-g0b9a69f, Copyright (c) 2000-2011 the FFmpeg developers
built on Nov 23 2011 12:51:56 with gcc 4.6.2
configuration: --prefix=/usr --enable-libmp3lame --enable-libvorbis --enable-libxvid --enable-libx264 --enable-libvpx
--enable-libtheora --enable-libgsm --enable-libspeex --enable-postproc --enable-shared --enable-x11grab
--enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libschroedinger --enable-libopenjpeg --enable-librtmp
--enable-gpl --enable-version3 --enable-runtime-cpudetect --disable-debug --disable-static
libavutil 51. 26. 0 / 51. 26. 0
libavcodec 53. 37. 0 / 53. 37. 0
libavformat 53. 21. 0 / 53. 21. 0
libavdevice 53. 4. 0 / 53. 4. 0
libavfilter 2. 49. 0 / 2. 49. 0
libswscale 2. 1. 0 / 2. 1. 0
libpostproc 51. 2. 0 / 51. 2. 0
Untuk Windows (konverter video Miro):
FFmpeg version SVN-r25762, Copyright (c) 2000-2010 the FFmpeg developers
built on Nov 18 2010 04:07:17 with gcc 4.4.2
configuration: --enable-gpl --enable-version3 --enable-libgsm
--enable-pthreads --enable-libvorbis --enable-libtheora --enable-libspeex
--enable-libmp3lame --enable-libopenjpeg --enable-libschroedinger
--enable-libopencore_amrwb --enable-libopencore_amrnb --enable-libvpx
--disable-decoder=libvpx --arch=x86 --enable-runtime-cpudetect --enable-libxvid
--enable-libx264 --extra-libs='-lx264 -lpthread' --enable-librtmp
--extra-libs='-lrtmp -lpolarssl -lws2_32 -lwinmm' --target-os=mingw32
--enable-avisynth --cross-prefix=i686-mingw32- --cc='ccache i686-mingw32-gcc'
--enable-memalign-hack
libavutil 50.33. 0 / 50.33. 0
libavcore 0.13. 0 / 0.13. 0
libavcodec 52.96. 0 / 52.96. 0
libavformat 52.84. 0 / 52.84. 0
libavdevice 52. 2. 2 / 52. 2. 2
libavfilter 1.62. 0 / 1.62. 0
libswscale 0.12. 0 / 0.12. 0
sumber
Jawaban:
Saya tidak tahu apa-apa tentang penyandian VP8 pada khususnya, tetapi secara umum
ffmpeg
mengacu pada bingkai kunci dalam hal ukuran "kelompok gambar".Lulus
-g
opsi dengan angka untuk digunakan sebagai ukuran maksimum dari kelompok gambar dalam bingkai; ini akan menjadi jumlah frame maksimum antara frame kunci (termasuk frame kunci).Mungkin saja versi ffmpeg / codec yang berbeda memiliki standar yang berbeda untuknya; namun Anda mungkin dapat menimpanya menjadi apa pun yang Anda inginkan.
Latar Belakang:
Format video terkompresi sering tidak menyimpan data lengkap untuk setiap frame video, alih-alih menyimpan sebagian besar frame sebagai deskripsi tentang cara membuat frame dari potongan-potongan frame sebelumnya (dan dalam sistem yang lebih modern, potongan-potongan frame yang dekat di masa depan). Agar dapat dengan cepat mencari dan mulai bermain, perangkat lunak pemutar video sering kali hanya memungkinkan Anda melompat ke frame yang memiliki data lengkap yang disimpan, yang disebut "frame kunci" atau frame-I.
Anda biasanya dapat memberi tahu pembuat enkoder seberapa sering Anda ingin meletakkannya di bingkai kunci. Frame kunci yang lebih banyak memungkinkan lebih banyak fleksibilitas untuk mencari dan mengedit, tetapi membuat kompresi video kurang efisien.
sumber