Setiap kali saya mencoba mendapatkan beberapa informasi tentang file video saya dengan ffmpeg, itu memuntahkan banyak informasi tidak berguna yang bercampur dengan hal-hal yang baik.
Saya menggunakan ffmpeg -i name_of_the_video.mpg
.
Ada kemungkinan untuk mendapatkannya dengan cara yang bersahabat? Maksud saya JSON akan bagus (dan bahkan XML jelek juga bagus).
Sekarang, saya membuat aplikasi saya mengurai data dengan regex tetapi ada banyak sudut buruk yang muncul di beberapa file video tertentu. Saya memperbaiki semua yang saya temui, tetapi mungkin ada lebih banyak.
Saya menginginkan sesuatu seperti:
{
"Stream 0": {
"type": "Video",
"codec": "h264",
"resolution": "720x480"
},
"Stream 1": {
"type": "Audio",
"bitrate": "128 kbps",
"channels": 2
}
}
Jawaban:
Agak terlambat, tapi mungkin masih relevan untuk seseorang ..
ffprobe
memang cara terbaik untuk pergi. Namun, perhatikan bahwa Anda perlu memberiffprobe
tahu informasi apa yang ingin Anda tampilkan (dengan opsi-show_format
,-show_packets
dan-show_streams
) atau itu hanya akan memberi Anda keluaran kosong (seperti yang Anda sebutkan di salah satu komentar Anda).Misalnya,
ffprobe -v quiet -print_format json -show_format -show_streams somefile.asf
akan menghasilkan sesuatu seperti berikut:sumber
-of json
bukan-print_format json
. Yang pertama kompatibel denganavprobe
yang terakhir tidak.Sekarang dapat digunakan
-progress -
untuk mencetak info ramah yang diformat olehkey=value
.sumber
Anda bisa mencoba
ffprobe
. Perintah yang benar untuk mendapatkan keluaran JSON akan terlihat seperti berikut:sumber
{}
. Sepertinya tidak bekerja dengan file video yang saya miliki ...Penggunaan lain
ffprobe
yang dapat diurai dengan baik:menghasilkan:
h264x600x480x25/1x385.680000x542326
-select_streams v:0
hanya memilih aliran video. Jika Anda menghapus parameter itu, Anda mendapatkan satu baris untuk setiap aliran.sumber