Saat ini saya menggunakan perintah ini untuk mengekstrak gambar:
ffmpeg.exe -i 10fps.h264 -r 10 -f image2 10fps.h264_% 03d.jpeg
Tetapi bagaimana saya dapat meningkatkan kualitas gambar JPEG?
Saat ini saya menggunakan perintah ini untuk mengekstrak gambar:
ffmpeg.exe -i 10fps.h264 -r 10 -f image2 10fps.h264_% 03d.jpeg
Tetapi bagaimana saya dapat meningkatkan kualitas gambar JPEG?
Jawaban:
-qscale:vGunakan -qscale:v(atau alias -q:v) sebagai opsi keluaran. Rentang efektif untuk JPEG adalah 2-31 dengan 31 sebagai kualitas terburuk. Saya sarankan mencoba nilai 2-5.
ffmpeg -i input.mp4 -qscale:v 2 output_%03d.jpg
ffmpeg -ss 60 -i input.mp4 -qscale:v 4 -frames:v 1 output.jpg
Ini akan bekerja dengan input video apa pun. Lihat di bawah jika masukan Anda adalah MJPEG.
Jika input Anda adalah MJPEG (Motion JPEG) maka gambar dapat diekstraksi tanpa kehilangan kualitas.
The ffmpegatau ffprobekonsol keluaran dapat memberitahu Anda jika Anda adalah masukan MJPEG:
$ ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=nw=1 input.avi
codec_name=mjpeg
Kemudian Anda dapat mengekstrak bingkai menggunakan mjpeg2jpegfilter bitstream :
$ ffmpeg -i input.avi -codec:v copy -bsf:v mjpeg2jpeg output_%03d.jpg
-qmin 1 -qmax 1selain -q:v 1menggandakan ukuran file. Dan saya juga bisa melihat sedikit peningkatan.
-qmin 1 -qmax 1menghasilkan file yang lebih besar, tetapi memberi saya gambar yang sama persis. Saya memvalidasi ini melalui photoshop, 2 layer dan filter perbedaan. Pikselnya sama.
-qmin 1 -q:v 1.
Keluarkan gambar dalam format lossless seperti PNG:
ffmpeg.exe -i 10fps.h264 -r 10 -f image2 10fps.h264_%03d.png
Kemudian gunakan program lain (di mana Anda dapat lebih tepat menentukan kualitas, subsampling dan metode DCT - misalnya GIMP) untuk mengonversi PNG yang Anda inginkan ke JPEG.
Dimungkinkan untuk mendapatkan gambar yang sedikit lebih tajam dalam format JPEG dengan cara ini daripada yang dimungkinkan dengan -qmin 1 -q:v 1dan dikeluarkan sebagai JPEG langsung dari ffmpeg.
ffmpegmengeluarkan PNG8file yang hanya menggunakan 256 warna (sama seperti GIF). jadi sebenarnya sangat merugikan.
ffmpegperintah [ ] ini, saya mendapatkan png kualitas tinggi yang kualitasnya identik dengan video aslinya." Versi apa ffmpegyang Anda gunakan yang mengeluarkan PNG8file, dan apa format input Anda?
identify image.pngmemberikan hasil "8-bit" padahal sebenarnya bukan saluran tunggal 8-bit, tetapi 8-bit untuk R, G dan B. IDK bagaimana identifypengguna rata-rata seharusnya memahami itu tho.