Xác định tốc độ bit video bằng ffmpeg


17

Tôi đang cố gắng xác định tốc độ bit video (Để chuyển mã) bằng lệnh ffmpeg, tôi đã thử làm theo lệnh.

ffmpeg -i 28572615.wmv

và nó tạo ra đầu ra sau

    Input #0, asf, from '28572615.wmv':
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: isomavc1
    encoder         : Lavf57.36.100
  Duration: 00:02:50.92, start: 0.000000, bitrate: 1982 kb/s
    Stream #0:0: Video: wmv2 (WMV2 / 0x32564D57), yuv420p, 640x360, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 1k tbn, 1k tbc
    Stream #0:1: Audio: wmav2 (a[1][0][0] / 0x0161), 44100 Hz, 2 channels, fltp, 128 kb/s
At least one output file must be specified

Nếu tôi sử dụng video khác

ffmpeg -i with_out_sound.mp4

sau đó tôi nhận được đầu ra sau

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'with_out_sound.mp4':
  Metadata:
    major_brand     : dash
    minor_version   : 0
    compatible_brands: iso6avc1mp41
    creation_time   : 2015-04-21 05:14:57
  Duration: 00:00:27.86, start: 0.000000, bitrate: 500 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 622x480 [SAR 1:1 DAR 311:240], 100 kb/s, 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc (default)
    Metadata:
      creation_time   : 2015-04-21 05:14:57
      handler_name    : VideoHandler
At least one output file must be specified

Điểm tôi bối rối là tôi nên tìm trong dòng siêu dữ liệu Thời lượng hoặc dòng siêu dữ liệu Video Stream (Luồng # 0: 0) cho tốc độ bit video?


Đối với tệp thứ 2, kích thước tệp là bao nhiêu?
Gyan

@Mulvya Kích thước tệp video thứ 2 là 1,66 MB
user2528012

Vì vậy, cả hai bài đọc đều sai - tốc độ bit thực tế là 61 kb / s. Điều này có lẽ là vì đó là một phân khúc DASH.
Gyan

Câu trả lời:


16

Tốc độ bit video được hiển thị trong thông tin luồng video. Thông tin định dạng chứa bitrate cho tất cả các luồng cộng với tổng phí.

Nếu bitrate video bị thiếu, thì một cách bẩn để có được giá trị đó là bằng cách trừ bitrate của tất cả các luồng khác khỏi tổng bitrate.

Nếu điều đó không khả thi, một phương pháp rườm rà là chạy ffprobe để hiển thị kích thước gói và thời lượng luồng và sau đó tính toán tốc độ bit bằng cách tính tổng tất cả các dòng trừ dòng cuối cùng và chia cho giá trị ở dòng cuối cùng.

ffprobe -select_streams v -show_entries packet=size:stream=duration -of compact=p=0:nk=1 video.mp4

Đầu ra:

4199      
2627      
1792      
3921      
2993      
...  
2301      
3076
2879
1543.00000

Tất nhiên, đây là giải pháp cuối cùng và chỉ áp dụng nếu thông tin luồng video không thể hiện bitrate và ước tính bitrate bằng cách giảm tỷ lệ của tất cả các luồng khác là không thể.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.