Ffmpeg kullanarak video bit hızını belirleme


17

Ffmpeg komutunu kullanarak video bit hızını (kod dönüştürme için) belirlemeye çalışıyorum, aşağıdaki komutu denedim.

ffmpeg -i 28572615.wmv

ve aşağıdaki çıktıyı üretir

    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

Başka bir video kullanırsam

ffmpeg -i with_out_sound.mp4

sonra aşağıdaki çıktıyı alıyorum

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

Şaşkın olduğum nokta, video bit hızı için Duration meta veri satırına veya Video Stream meta veri satırına (Stream # 0: 0) bakmam mıdır?


2. dosya için dosya boyutu nedir?
Gyan

@Mulvya 2nd video dosyasının boyutu 1.66 MB
user2528012

Yani her iki okuma da yanlış - gerçek bit hızı 61 kb / s. Muhtemelen bunun nedeni DASH segmentidir.
Gyan

Ffmpeg tek tek akış bit hızlarını nasıl belirler? Oranların nasıl belirlendiğini açıklar.
creidhne

Yanıtlar:


16

Video bit hızı, video akışı bilgilerinde görüntülenir. Biçim bilgisi, tüm akışlar için bit hızını ve muxing yükünü içerir.

Video bit hızı eksikse, bu değeri almanın kirli bir yolu, diğer tüm akışların bit hızını toplam bit hızından çıkarmaktır.

Bu geçerli değilse, hantal bir yöntem, paket boyutlarını ve akış süresini göstermek için ffprobe çalıştırmak ve sonuncusu dışındaki tüm satırları toplayarak ve son satırdaki değere bölerek bit hızını hesaplamaktır .

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

Çıktı:

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

Tabii ki, bu son çare bir çözümdür ve sadece video akışı bilgisi bir bit hızı spor yapmıyorsa ve diğer tüm akışların oranını indirerek bit hızını tahmin etmek de mümkün değilse uygulanabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.