Tôi nhưng là một nhà phát triển PHP thấp, được giao nhiệm vụ lấy một số thông tin cơ bản về 100 nghìn tệp video. Tôi đã có một số may mắn sử dụng ffmpeg chiết xuất video bitrate
, video width
, video height
, duration
, và aspect ratio
từ họ, nhưng với một tỷ lệ sai số khoảng 5%, điều này vẫn còn để cho tôi với một số lượng rất lớn các tập tin mà tôi không biết làm thế nào để đối phó với. Các video DO phát, nhưng lượng dữ liệu khổng lồ mà ffmpeg trả về khiến tôi gặp khó khăn khi phân tích cú pháp XML được trả về để tìm những gì tôi cần với tất cả các điều kiện mà tôi dường như đang gặp phải. (Các tệp này là một bộ sưu tập từ 15 năm trước hoặc lâu hơn, một số được mã hóa mới, một số khác được chuyển đổi từ nhiều năm trước)
Ở mức độ nào, tôi đã tìm thấy cách sử dụng sau đây ffprobe
để có được thời lượng và hy vọng rằng ai đó ở đây hiểu được sự phức tạp của việc sử dụng ffmpeg & ffprobe sẽ đủ tốt để giúp tôi tìm ra các giá trị khác mà tôi cần theo cách đơn giản hơn mã điên Tôi thấy mình đang tạo ra để trèo qua kết quả đầy đủ của ffmpeg.
ffprobe -i "video.mp4" -show_entries format=duration -v quiet -of csv="p=0"
Cảm ơn rất nhiều trước.
LÀM RÕ:
Tôi nên thêm rằng với cmd bên dưới, tôi có thể "nhìn thấy" những gì tôi cần, nhưng tôi không hiểu làm thế nào để trích xuất những gì tôi cần, ví dụ như lấy bitrate VIDEO và loại bỏ / bỏ qua bitrate AUDIO hoặc xác định 2 thời lượng khác nhau để sử dụng (thời lượng âm thanh / video?)
C:\>ffprobe -v error -show_entries stream=width,height,bit_rate,duration -of default=noprint_wrappers=1 input.mp4
duration=1712.000000
bit_rate=64000
width=320
height=240
duration=1711.946113
bit_rate=359827
duration=1712.000000
bit_rate=N/A
duration=1712.000000
bit_rate=N/A