Ffmpeg ব্যবহার করে ভিডিও বিটরেট নির্ধারণ করুন


17

আমি ffmpeg কমান্ড ব্যবহার করে ভিডিও বিটরেট (ট্রান্সকোডিংয়ের জন্য) নির্ধারণ করার চেষ্টা করছি, আমি নিম্নলিখিত আদেশটি চেষ্টা করেছি।

ffmpeg -i 28572615.wmv

এবং এটি নিম্নলিখিত আউটপুট উত্পাদন করে

    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

আমি যদি অন্য একটি ভিডিও ব্যবহার করি

ffmpeg -i with_out_sound.mp4

তারপর আমি নিম্নলিখিত আউটপুট পেতে

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

আমি যে বিষয়টি গুলিয়ে ফেলছি তা হ'ল ভিডিও বিটরেটের জন্য আমি কি স্থিতিকালীন মেটাডেটা লাইন বা ভিডিও স্ট্রিম মেটাডেটা লাইনে (স্ট্রিম # 0: 0) সন্ধান করব?


২ য় ফাইলের জন্য, ফাইলের আকারটি কী?
জ্ঞান

@ মালব্য ২ য় ভিডিও ফাইলের আকার 1.66 এমবি
ব্যবহারকারী 2528012

সুতরাং উভয় পাঠ্যই ভুল - প্রকৃত বিটরেট 61 কেবি / সেকেন্ড। এটি সম্ভবত এটি একটি ড্যাশ বিভাগের কারণে।
জ্ঞান

কীভাবে ffmpeg পৃথক স্ট্রিম বিটরেট নির্ধারণ করে? হারগুলি কীভাবে নির্ধারণ করা হয় তা ব্যাখ্যা করে।
creidhne

উত্তর:


16

ভিডিও বিটরেট ভিডিও স্ট্রিম তথ্যতে প্রদর্শিত হয়। ফর্ম্যাট তথ্যটিতে সমস্ত স্ট্রিম প্লাস ওভারহেড ম্যাক্সিংয়ের জন্য বিটরেট রয়েছে।

ভিডিও বিটরেটটি যদি অনুপস্থিত থাকে, তবে সেই মানটি পাওয়ার একটি নোংরা উপায় হ'ল মোট বিট্রেট থেকে অন্য সমস্ত স্ট্রিমের বিটরেট বিয়োগ করে।

যদি তা কার্যকর না হয়, একটি জটিল পদ্ধতি হ'ল প্যাকেট আকার এবং স্ট্রিম সময়কাল প্রদর্শন করতে ffprobe চালানো এবং তারপরে শেষটি ব্যতীত সমস্ত লাইন যোগ করে বিটরেট গণনা করা , এবং শেষ লাইনে মান দ্বারা ভাগ করা।

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

আউটপুট:

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

অবশ্যই এটি একটি সর্বশেষ সমাধানের সমাধান, এবং কেবলমাত্র তখনই প্রযোজ্য যদি ভিডিও স্ট্রিম তথ্যটি একটি বিটরেট খেলাধুলা না করে এবং অন্যান্য সমস্ত স্ট্রিমের হার ছাড় দিয়ে বিটরেট অনুমান করা সম্ভব হয় না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.