NVENC সহ এফএফএমপিগের জন্য সেরা সেটিংস


26

আমি আমার জিপিইউ ( এনভিইএনসি ) এর সাপোর্টের সাথে আমার এফএফএমপিইজি ব্যবহার করছি আমার স্যাটেলাইট রিসিভার (এসডি, এমপিজি 2 .টিএস-ফাইল) থেকে h264 .mp4-ফাইলগুলিতে রূপান্তর করতে

আমি যে লাইনটি ব্যবহার করছি তা এখানে

ffmpeg -i "e:\input.ts" -vcodec h264_nvenc -preset slow -level 4.1
       -qmin 10 -qmax 52 "e:\output.mp4"

তবে মান যেমন প্রত্যাশা করা যায় তেমন ভাল না। এবং আমার সিস্টেমের সম্পূর্ণ শক্তি ব্যবহার করা হয় না:

এখানে চিত্র বর্ণনা লিখুন

শুধুমাত্র 11% জিপিইউ এবং 30% সিপিইউ ব্যবহার।

প্রশ্ন: সমমানের ফাইলের আকারের দ্বারা মান উন্নত করতে এবং আমার জেফোর্স জিটিএক্স 1080 এর আরও গণনাকারী শক্তি ব্যবহার করতে আমি কি কিছু উন্নতি করতে পারি?

আমি পরিবর্তিত হতে from থেকে কয়েকটি পরামিতি পেয়েছি তবে ইতিমধ্যে সর্বোত্তম মানের পদ্ধতির হওয়া উচিত?-preset slow

উত্তর:


37

এনকোডার টিউন করার জন্য এখানে একটি মোটামুটি গাইড:

আমরা বেসিকগুলি থেকে শুরু করব, কারণ এই সিদ্ধান্তে ঝাঁপিয়ে পড়া ক্ষতিকারক হবে যে বিকল্পগুলির একটি দ্রুত বারাজ হঠাৎ কাঙ্ক্ষিত উদ্দেশ্যগুলি এবং প্রত্যাশাগুলি না বুঝে প্রত্যাশিত আউটপুটটিকে উন্নত করবে:

1. এনকোডারগুলির বিকল্পগুলি বোঝার দ্বারা শুরু করুন।

এনভিএনসি-ভিত্তিক এনকোডারদের জন্য, প্রতিটি এনকোডার যে বিকল্পগুলি গ্রহণ করে তা শিখতে শুরু করুন (নোট করুন যে আমি লিনাক্সে আছি, এজন্য আমি এখানে কোডিং অপশনগুলি এখানে আটকানোর আগে ক্লিপবোর্ডে অনুলিপি করতে ব্যবহার করছি):

(ক)। H.264 এনকোডারটির জন্য:

ffmpeg -hide_banner -h encoder=h264_nvenc | xclip -sel clip

আউটপুট:

Encoder h264_nvenc [NVIDIA NVENC H.264 encoder]:
    General capabilities: delay 
    Threading capabilities: none
    Supported pixel formats: yuv420p nv12 p010le yuv444p yuv444p16le bgr0 rgb0 cuda
h264_nvenc AVOptions:
  -preset            <int>        E..V.... Set the encoding preset (from 0 to 11) (default medium)
     default                      E..V.... 
     slow                         E..V.... hq 2 passes
     medium                       E..V.... hq 1 pass
     fast                         E..V.... hp 1 pass
     hp                           E..V.... 
     hq                           E..V.... 
     bd                           E..V.... 
     ll                           E..V.... low latency
     llhq                         E..V.... low latency hq
     llhp                         E..V.... low latency hp
     lossless                     E..V.... 
     losslesshp                   E..V.... 
  -profile           <int>        E..V.... Set the encoding profile (from 0 to 3) (default main)
     baseline                     E..V.... 
     main                         E..V.... 
     high                         E..V.... 
     high444p                     E..V.... 
  -level             <int>        E..V.... Set the encoding level restriction (from 0 to 51) (default auto)
     auto                         E..V.... 
     1                            E..V.... 
     1.0                          E..V.... 
     1b                           E..V.... 
     1.0b                         E..V.... 
     1.1                          E..V.... 
     1.2                          E..V.... 
     1.3                          E..V.... 
     2                            E..V.... 
     2.0                          E..V.... 
     2.1                          E..V.... 
     2.2                          E..V.... 
     3                            E..V.... 
     3.0                          E..V.... 
     3.1                          E..V.... 
     3.2                          E..V.... 
     4                            E..V.... 
     4.0                          E..V.... 
     4.1                          E..V.... 
     4.2                          E..V.... 
     5                            E..V.... 
     5.0                          E..V.... 
     5.1                          E..V.... 
  -rc                <int>        E..V.... Override the preset rate-control (from -1 to INT_MAX) (default -1)
     constqp                      E..V.... Constant QP mode
     vbr                          E..V.... Variable bitrate mode
     cbr                          E..V.... Constant bitrate mode
     vbr_minqp                    E..V.... Variable bitrate mode with MinQP (deprecated)
     ll_2pass_quality              E..V.... Multi-pass optimized for image quality (deprecated)
     ll_2pass_size                E..V.... Multi-pass optimized for constant frame size (deprecated)
     vbr_2pass                    E..V.... Multi-pass variable bitrate mode (deprecated)
     cbr_ld_hq                    E..V.... Constant bitrate low delay high quality mode
     cbr_hq                       E..V.... Constant bitrate high quality mode
     vbr_hq                       E..V.... Variable bitrate high quality mode
  -rc-lookahead      <int>        E..V.... Number of frames to look ahead for rate-control (from 0 to INT_MAX) (default 0)
  -surfaces          <int>        E..V.... Number of concurrent surfaces (from 0 to 64) (default 0)
  -cbr               <boolean>    E..V.... Use cbr encoding mode (default false)
  -2pass             <boolean>    E..V.... Use 2pass encoding mode (default auto)
  -gpu               <int>        E..V.... Selects which NVENC capable GPU to use. First GPU is 0, second is 1, and so on. (from -2 to INT_MAX) (default any)
     any                          E..V.... Pick the first device available
     list                         E..V.... List the available devices
  -delay             <int>        E..V.... Delay frame output by the given amount of frames (from 0 to INT_MAX) (default INT_MAX)
  -no-scenecut       <boolean>    E..V.... When lookahead is enabled, set this to 1 to disable adaptive I-frame insertion at scene cuts (default false)
  -forced-idr        <boolean>    E..V.... If forcing keyframes, force them as IDR frames. (default false)
  -b_adapt           <boolean>    E..V.... When lookahead is enabled, set this to 0 to disable adaptive B-frame decision (default true)
  -spatial-aq        <boolean>    E..V.... set to 1 to enable Spatial AQ (default false)
  -temporal-aq       <boolean>    E..V.... set to 1 to enable Temporal AQ (default false)
  -zerolatency       <boolean>    E..V.... Set 1 to indicate zero latency operation (no reordering delay) (default false)
  -nonref_p          <boolean>    E..V.... Set this to 1 to enable automatic insertion of non-reference P-frames (default false)
  -strict_gop        <boolean>    E..V.... Set 1 to minimize GOP-to-GOP rate fluctuations (default false)
  -aq-strength       <int>        E..V.... When Spatial AQ is enabled, this field is used to specify AQ strength. AQ strength scale is from 1 (low) - 15 (aggressive) (from 1 to 15) (default 8)
  -cq                <float>      E..V.... Set target quality level (0 to 51, 0 means automatic) for constant quality mode in VBR rate control (from 0 to 51) (default 0)
  -aud               <boolean>    E..V.... Use access unit delimiters (default false)
  -bluray-compat     <boolean>    E..V.... Bluray compatibility workarounds (default false)
  -init_qpP          <int>        E..V.... Initial QP value for P frame (from -1 to 51) (default -1)
  -init_qpB          <int>        E..V.... Initial QP value for B frame (from -1 to 51) (default -1)
  -init_qpI          <int>        E..V.... Initial QP value for I frame (from -1 to 51) (default -1)
  -qp                <int>        E..V.... Constant quantization parameter rate control method (from -1 to 51) (default -1)
  -weighted_pred     <int>        E..V.... Set 1 to enable weighted prediction (from 0 to 1) (default 0)
  -coder             <int>        E..V.... Coder type (from -1 to 2) (default default)
     default                      E..V.... 
     auto                         E..V.... 
     cabac                        E..V.... 
     cavlc                        E..V.... 
     ac                           E..V.... 
     vlc                          E..V.... 

(খ)। এইচভিসি / এইচ .265 এনকোডারটির জন্য:

ffmpeg -hide_banner -h encoder=hevc_nvenc | xclip -sel clip

আউটপুট:

Encoder hevc_nvenc [NVIDIA NVENC hevc encoder]:
    General capabilities: delay 
    Threading capabilities: none
    Supported pixel formats: yuv420p nv12 p010le yuv444p yuv444p16le bgr0 rgb0 cuda
hevc_nvenc AVOptions:
  -preset            <int>        E..V.... Set the encoding preset (from 0 to 11) (default medium)
     default                      E..V.... 
     slow                         E..V.... hq 2 passes
     medium                       E..V.... hq 1 pass
     fast                         E..V.... hp 1 pass
     hp                           E..V.... 
     hq                           E..V.... 
     bd                           E..V.... 
     ll                           E..V.... low latency
     llhq                         E..V.... low latency hq
     llhp                         E..V.... low latency hp
     lossless                     E..V.... lossless
     losslesshp                   E..V.... lossless hp
  -profile           <int>        E..V.... Set the encoding profile (from 0 to 4) (default main)
     main                         E..V.... 
     main10                       E..V.... 
     rext                         E..V.... 
  -level             <int>        E..V.... Set the encoding level restriction (from 0 to 186) (default auto)
     auto                         E..V.... 
     1                            E..V.... 
     1.0                          E..V.... 
     2                            E..V.... 
     2.0                          E..V.... 
     2.1                          E..V.... 
     3                            E..V.... 
     3.0                          E..V.... 
     3.1                          E..V.... 
     4                            E..V.... 
     4.0                          E..V.... 
     4.1                          E..V.... 
     5                            E..V.... 
     5.0                          E..V.... 
     5.1                          E..V.... 
     5.2                          E..V.... 
     6                            E..V.... 
     6.0                          E..V.... 
     6.1                          E..V.... 
     6.2                          E..V.... 
  -tier              <int>        E..V.... Set the encoding tier (from 0 to 1) (default main)
     main                         E..V.... 
     high                         E..V.... 
  -rc                <int>        E..V.... Override the preset rate-control (from -1 to INT_MAX) (default -1)
     constqp                      E..V.... Constant QP mode
     vbr                          E..V.... Variable bitrate mode
     cbr                          E..V.... Constant bitrate mode
     vbr_minqp                    E..V.... Variable bitrate mode with MinQP (deprecated)
     ll_2pass_quality              E..V.... Multi-pass optimized for image quality (deprecated)
     ll_2pass_size                E..V.... Multi-pass optimized for constant frame size (deprecated)
     vbr_2pass                    E..V.... Multi-pass variable bitrate mode (deprecated)
     cbr_ld_hq                    E..V.... Constant bitrate low delay high quality mode
     cbr_hq                       E..V.... Constant bitrate high quality mode
     vbr_hq                       E..V.... Variable bitrate high quality mode
  -rc-lookahead      <int>        E..V.... Number of frames to look ahead for rate-control (from 0 to INT_MAX) (default 0)
  -surfaces          <int>        E..V.... Number of concurrent surfaces (from 0 to 64) (default 0)
  -cbr               <boolean>    E..V.... Use cbr encoding mode (default false)
  -2pass             <boolean>    E..V.... Use 2pass encoding mode (default auto)
  -gpu               <int>        E..V.... Selects which NVENC capable GPU to use. First GPU is 0, second is 1, and so on. (from -2 to INT_MAX) (default any)
     any                          E..V.... Pick the first device available
     list                         E..V.... List the available devices
  -delay             <int>        E..V.... Delay frame output by the given amount of frames (from 0 to INT_MAX) (default INT_MAX)
  -no-scenecut       <boolean>    E..V.... When lookahead is enabled, set this to 1 to disable adaptive I-frame insertion at scene cuts (default false)
  -forced-idr        <boolean>    E..V.... If forcing keyframes, force them as IDR frames. (default false)
  -spatial_aq        <boolean>    E..V.... set to 1 to enable Spatial AQ (default false)
  -temporal_aq       <boolean>    E..V.... set to 1 to enable Temporal AQ (default false)
  -zerolatency       <boolean>    E..V.... Set 1 to indicate zero latency operation (no reordering delay) (default false)
  -nonref_p          <boolean>    E..V.... Set this to 1 to enable automatic insertion of non-reference P-frames (default false)
  -strict_gop        <boolean>    E..V.... Set 1 to minimize GOP-to-GOP rate fluctuations (default false)
  -aq-strength       <int>        E..V.... When Spatial AQ is enabled, this field is used to specify AQ strength. AQ strength scale is from 1 (low) - 15 (aggressive) (from 1 to 15) (default 8)
  -cq                <float>      E..V.... Set target quality level (0 to 51, 0 means automatic) for constant quality mode in VBR rate control (from 0 to 51) (default 0)
  -aud               <boolean>    E..V.... Use access unit delimiters (default false)
  -bluray-compat     <boolean>    E..V.... Bluray compatibility workarounds (default false)
  -init_qpP          <int>        E..V.... Initial QP value for P frame (from -1 to 51) (default -1)
  -init_qpB          <int>        E..V.... Initial QP value for B frame (from -1 to 51) (default -1)
  -init_qpI          <int>        E..V.... Initial QP value for I frame (from -1 to 51) (default -1)
  -qp                <int>        E..V.... Constant quantization parameter rate control method (from -1 to 51) (default -1)
  -weighted_pred     <int>        E..V.... Set 1 to enable weighted prediction (from 0 to 1) (default 0)

২. হার্ডওয়্যারটির সীমাবদ্ধতাগুলি বোঝুন এবং বিকল্পগুলি প্রয়োগ করার আগে প্রথমে বুদ্ধিমান ডিফল্টগুলিকে আটকে দিন:

পড়ুন এই উত্তর হার্ডওয়্যার সীমাবদ্ধতা আপনি বিশেষভাবে পাসকাল উপর HEVC এনকোড জন্য NVENC সঙ্গে পাতিত করব, জন্য।

এফএফপিপিগের সাথে বর্তমান প্রজন্মের এনভিআইডিআইএ হার্ডওয়্যারগুলিতে উপলব্ধ হার্ডওয়্যার-গতিযুক্ত অবকাঠামোগুলির জন্য, এই উত্তরটি দেখুন।

তারপরে, সেই তথ্যটি ব্যবহার করে পরবর্তী ধাপে এগিয়ে যান।

৩. সিনট্যাক্স সমালোচনা:

এফএফম্পেগের কাছে আপনাকে যে অর্ডারটি দিতে হবে তা এখানে:

(ক)। বাইনারি কল করুন।

(খ)। -loglevelইনপুটগুলি ঘোষণার আগে এফএফএমপিগের কাছে কোনও যুক্তি (যেমন এটি সরাসরি) পাস করুন ।

(গ)। আপনি যদি কোনও হার্ডওয়্যার-ত্বরণযুক্ত ডিকোডিং ব্যবহার করে থাকেন, যেমন cuvid, এখানে এটি ঘোষণা করুন এবং এর জন্য প্রয়োজনীয় কোনও নির্দিষ্ট যুক্তি অন্তর্ভুক্ত করুন। এই মুহুর্তে, ডিকোডারের নির্দিষ্ট সীমাবদ্ধতা যেমন প্রত্যাশিত ইনপুট রেজোলিউশন, সমর্থিত কোডেক ইত্যাদি রয়েছে এবং এটি উল্লেখ করা বাঞ্ছনীয় হবে যে, উত্পাদনে, হার্ডওয়্যার-এক্সিলার্ট ডিকোডারগুলির প্রয়োজনীয়তা ব্যর্থতা হিসাবে নির্ধারণ ও বৈধতা দেওয়ার জন্য সুপারিশ করা হয় এই পর্যায়ে একটি ব্যর্থ এনকোডের ফলাফল এবং অপরিবর্তনযোগ্য। প্রকৃতপক্ষে, এমপিভি ডেভসরা বারবার এটি উল্লেখ করেছে, মিশন-সমালোচনামূলক সামগ্রী সরবরাহের জন্য হার্ডওয়্যার-এক্সিলারেটড ডিকোডিংয়ের উপর নির্ভর করবেন না।

(ঘ)। আপনার ইনপুটগুলি ঘোষণা করুন। স্ট্রিমগুলির জন্য, ইউআরএলটি ব্যবহার করুন এবং যদি প্রয়োজন হয় তবে প্রয়োজন হিসাবে অতিরিক্ত পতাকাগুলি (যেমন বাফার আকারগুলি) প্রেরেন্ড করুন। স্থানীয় সংস্থাগুলির জন্য (একটি অ্যাক্সেসযোগ্য ফাইল সিস্টেমের উপর), পরম ফাইল পাথের প্রয়োজন।

(ঙ)। Allyচ্ছিকভাবে, একটি ফিল্টার sertোকান। এটি পুনরায় আকার, পিক্সেল ফর্ম্যাট কথোপকথন, ডি-ইন্টারলেসিং ইত্যাদির মতো ফাংশনগুলির জন্য প্রয়োজন Note নোট করুন যে এখানে ব্যবহৃত ফিল্টারের উপর নির্ভর করে একটি হার্ডওয়্যার-ভিত্তিক ডিকোডার (বিভাগে (গ) বর্ণিত) প্রতিবন্ধকতা প্রবর্তন করবে যা আপনার ফিল্টারটি অবশ্যই হবে পরিচালনা করতে সক্ষম, না হলে আপনার এনকোড ব্যর্থ হবে।

(চ)। উপযুক্ত ভিডিও এবং অডিও এনকোডার আপ কল করুন, এবং এই ধরনের ম্যাপিং, বিটরেটগুলি, এনকোডার প্রিসেট ইত্যাদি তাদের প্রয়োজনীয় আর্গুমেন্ট, পাস এটা বিটরেটগুলি বিষয় আসে, তখন নিশ্চিত করুন যে আপনার পছন্দসই মান মাধ্যমে নির্ধারণ করা হয় -b:v, -maxrate:vএবং -bufsize:vঅপশন। এই ফাঁকা ছেড়ে না। এই মানগুলি কেন গুরুত্বপূর্ণ তা এটি একটি সূচনা পয়েন্ট। সর্বদা হিসাবে, একটি প্রিসেট নির্দিষ্ট করে শুরু করুন। এই নির্দিষ্ট এনকোডার দিয়ে প্রিসেটগুলির কার্যকারিতা প্রভাব সম্পর্কে নোটগুলি দেখতে নীচে স্ক্রোল করুন।

(ছ)। যেখানে FFmpeg আউটপুট ফাইলের নির্বাচিত বর্ধনের উপর নির্ভর করে কোনও ফাইলের প্রয়োজনীয় আউটপুট ফর্ম্যাটটি হ্রাস করতে পারে, সেখানে স্পষ্টভাবে আউটপুট ফর্ম্যাটটি (-f বিকল্পের মাধ্যমে) ঘোষণা করার পরামর্শ দেওয়া হয় যাতে প্রয়োজনে অতিরিক্ত বিকল্পগুলি অন্তর্নিহিত ম্যাক্সারে স্থানান্তরিত হতে পারে যেমনটি প্রায়শই এইচএলএস, এমপেজ এবং ড্যাশ হিসাবে স্ট্রিমিং ফর্ম্যাটগুলির ক্ষেত্রে ঘটে।

(জ)। আউটপুট ফাইলের পরম পাথ।

উপরে আপনার উদাহরণ সহ, হিসাবে উদ্ধৃত:

ffmpeg -i "e:\input.ts" -vcodec h264_nvenc -preset slow -level 4.1
       -qmin 10 -qmax 52 "e:\output.mp4"

আপনি সঠিক বিটরেটগুলি নির্দিষ্ট করে আউটপুট মান বাড়াতে পারেন (মাধ্যমে -b:v, -maxrate:vএবং -bufsize:vসেটিংস), অভিযোজিত quantization এনকোডিং প্রযুক্তির (স্থানিক ও সময়গত কিউ পদ্ধতি সমর্থিত, যার মধ্যে শুধুমাত্র একটি একটি সময়ে ব্যবহার করা যেতে পারে) সক্রিয় দ্বারা ঐচ্ছিকরূপে (এবং আলাদাভাবে) নিম্নোক্ত হিসাবে ওজনিত পূর্বাভাস (যা বি-ফ্রেম সমর্থনকে অক্ষম করবে) সক্ষম করবে, পাশাপাশি একটি উপযুক্ত ডাউনস্কেলের জন্য একটি filterচ্ছিক ফিল্টার এবং প্রয়োজনে পুনরায় আকার দিতে হবে। নীচের উদাহরণে এমপিইগ 2 এ এনকোড করা একটি স্নিপেট হ্যান্ডলিং এমপিগেটস ইনপুট দেখায়:

ffmpeg -loglevel debug -threads 4 -hwaccel cuvid -c:v mpeg2_cuvid -i "e:\input.ts" \
-filter:v hwupload_cuda,scale_npp=w=1920:h=1080:interp_algo=lanczos \
-c:v h264_nvenc -b:v 4M -maxrate:v 5M -bufsize:v 8M -profile:v main \
-level:v 4.1 -rc:v vbr_hq -rc-lookahead:v 32 \
-spatial_aq:v 1 -aq-strength:v 15 -coder:v cabac \
-f mp4 "e:\output.mp4"

সতর্কতা: নোট করুন যে ওজনিত পূর্বাভাস ( -weighted_pred) অভিযোজিত পরিমাণের হিসাবে একই সময়ে সক্ষম করা যায় না। এটি করার চেষ্টা করার ফলে এনকোডার সূচনা ব্যর্থ হবে।

উপরের স্নিপেট ধরে নেয় যে ইনপুট ফাইলটি একটি এমপিইজি 2 স্ট্রিম। যদি এটি না হয়, বিশদটি বিশ্লেষণের পরে সঠিক সিউভিআইডি ডিকোডারটিতে স্যুইচ করুন:

ffprobe -i e:\input.ts

যদি এর 'এইচ .264 / এভিসি হয়, নীচে প্রদর্শিত হিসাবে স্নিপেট পরিবর্তন করুন:

ffmpeg -loglevel debug -threads 4 -hwaccel cuvid -c:v h264_cuvid -i "e:\input.ts" \
-filter:v hwupload_cuda,scale_npp=w=1920:h=1080:interp_algo=lanczos \
-c:v h264_nvenc -b:v 4M -maxrate:v 5M -bufsize:v 8M -profile:v main \
-level:v 4.1 -rc:v vbr_hq -rc-lookahead:v 32 -spatial_aq:v 1 \
-aq-strength:v 15 -coder:v cabac \
-f mp4 "e:\output.mp4"

আমি লক্ষ করেছি যে NVENC- র জন্য অভিযোজিত পরিমাণ নির্ধারণের বা ওয়েটের পূর্বাভাসের বিকল্পগুলি সক্ষম করা স্থায়িত্ব সম্পর্কিত সমস্যাগুলি বিশেষত নির্দিষ্ট ডিভাইস ড্রাইভার সংমিশ্রণের সাথে প্রবর্তন করতে পারে। যেখানে সম্ভব, বি-ফ্রেমগুলি (3 এর বেশি নয়) জেনেরিক বিকল্পটি -refs:v16 এবং তার আশেপাশে সেট করা, একিউ এবং টানকৃত পূর্বাভাসের পরিবর্তে ব্যবহারের কথা বিবেচনা করুন:

ffmpeg -loglevel debug -threads 4 -hwaccel cuvid -c:v h264_cuvid -i "e:\input.ts" \
-filter:v hwupload_cuda,scale_npp=w=1920:h=1080:interp_algo=lanczos \
-c:v h264_nvenc -b:v 4M -maxrate:v 5M -bufsize:v 8M -profile:v main \
-level:v 4.1 -rc:v vbr_hq -rc-lookahead:v 32 -refs:v 16 \
-bf:v 3 -coder:v cabac \
-f mp4 "e:\output.mp4"

সঙ্গে টুরিং বিশেষ করে, এছাড়াও আপনি রেফারেন্স হিসেবে (টগল দেখতে নিচে দেখানো জন্য বি-ফ্রেম সক্রিয় থেকে লাভবান হতে পারে -b_ref_mode:v middle):

ffmpeg -loglevel debug -threads 4 -hwaccel cuvid -c:v h264_cuvid -i "e:\input.ts" \
-filter:v hwupload_cuda,scale_npp=w=1920:h=1080:interp_algo=lanczos \
-c:v h264_nvenc -b:v 4M -maxrate:v 5M -bufsize:v 8M -profile:v main \
-level:v 4.1 -rc:v vbr_hq -rc-lookahead:v 32 -refs:v 16 \
-bf:v 3 -coder:v cabac -b_ref_mode:v middle \
-f mp4 "e:\output.mp4"

থ্রেড কাউন্টে একটি অতিরিক্ত নোট ( -threadsবিকল্পের মাধ্যমে ffmpeg এ চলে গেছে ):

নির্দিষ্ট প্রান্তিকের বাইরে আরও এনকোডার থ্রেড বিলম্বিতা বৃদ্ধি করে এবং উচ্চতর এনকোডিং মেমরির পদচিহ্ন থাকবে। এনকোডের দেরি বৃদ্ধির কারণে ধ্রুবক বিটরেট মোডগুলিতে এবং কাছের ধ্রুবক বিটরেট মোডে নিকটতম ধ্রুবক বিটরেট মোডে উচ্চতর থ্রেডের সংখ্যার সাথে গুণমানের অবনতি অধিকতর সুস্পষ্ট। নিম্নমানের কীফ্রেমগুলি পালস করা এড়াতে কীফ্রেমগুলিকে আরও বেশি ডেটা দরকার হয় তবে অন্যান্য ফ্রেমের ধরণের।

জিরো-বিলম্ব বা কাটা থ্রেড মোডে কোনও বিলম্ব নেই, তবে এই বিকল্পটি আরও সমর্থিত এনকোডারগুলিতে মাল্টি-থ্রেডের গুণমানকে আরও খারাপ করে।

অতএব এনকোডার থ্রুপুট বৃদ্ধির ফলে দীর্ঘমেয়াদে যে কোনও সুযোগ-সুবিধা আসতে পারে তা অফসেট হিসাবে এনকোডগুলিতে থ্রেড সংখ্যা সীমিত করা বুদ্ধিমানের কাজ।

আপনি যেহেতু উইন্ডোজে আছেন \তাই উপরের কমান্ডটি পরীক্ষা করে কোনও ইউনিক্স বক্স থেকে এটি লিখতে থাকায় আপনি উপরের শেলটি সরিয়ে নিতে চাইবেন ।

প্রিসেট এবং ইন্টারলেসড এনকোডিং বিবেচনার সাথে কার্যকারিতা প্রভাব সম্পর্কিত নোট:

উচ্চ থ্রুপুট, স্বল্প ল্যাটেন্সি পারফরম্যান্সের জন্য, আপনি হয় llhpবা llhqপ্রিসেটগুলি ব্যবহার করছেন তা নিশ্চিত করুন । লাইভ স্ট্রিমিংয়ের মতো ওয়ার্কলোডের ক্ষেত্রে এটি সবচেয়ে দরকারী যেখানে বিস্তৃত বিভিন্ন ডিভাইসের সাথে বিস্তৃত সামঞ্জস্যতা প্রত্যাশিত এবং যেমন, বি-ফ্রেমের মতো পারফরম্যান্স পঙ্গু বৈশিষ্ট্যগুলি পুরোপুরি বাদ দেওয়া যেতে পারে উচ্চ বিট-রেটের মধ্যে একটি ভাল বাণিজ্য-অফের জন্য be ব্যবহার এবং মাধ্যমে আউটপুট। উচ্চতর প্রিসেটগুলি (যেমন ডিফল্ট হিসাবে medium) মান আউটপুটে দ্রুত রিটার্ন হ্রাস করে থাকে যখন একই সাথে এনকোডার থ্রুপুটটিতে উল্লেখযোগ্য ধীরগতি হয়। মধ্যে মানের পার্থক্য llhpএবং llhqদ্বারা পরিমাপ হিসাবে Netflix এর VMAF কার্যত নগন্য, তবুও প্রাক্তনটির সাথে এনকোডারটির পারফরম্যান্স বুস্ট (আমার পরীক্ষার বিছানার উপর 30% ডলার) অবশ্যই প্রশংসনীয়।

জন্য llhpএবং llhqপ্রিসেট, সেইসাথে ব্যবহারে অন্যান্য প্রিসেট, এছাড়াও আপনি ক্ষণস্থায়ী মধ্যে ইন-বিল্ট হার-নিয়ন্ত্রণ পদ্ধতি ওভাররাইড করতে পারে -rc:vযেমন এনকোডার অপশন দ্বারা উদ্ভাসিত আর্গুমেন্ট। উদাহরণস্বরূপ, ধ্রুবক বিট-রেট এনকোডিংয়ের মাধ্যমে আপনি নির্দিষ্ট করতে পারবেন -rc:v cbr(যা cbr_ld_hqহার নিয়ন্ত্রণের পদ্ধতির তুলনায় উল্লেখযোগ্যভাবে দ্রুত , থ্রুপুটে অতিরিক্ত ~ 20% বাড়িয়ে তোলে)। নোট করুন যে নির্বাচিত প্রিসেটটি থ্রুপুটটিতে সর্বাধিক প্রভাব ফেলবে , তারপরে প্রসেট বিকল্পগুলি (যেমন ব্যবহারের হার নিয়ন্ত্রণের পদ্ধতি) অনুসরণ করবে যা আপনি পছন্দসই হলে ওভাররাইড করতে পারেন।

আপনার এনকোডিংয়ের কার্যপ্রবাহটি বিবেচনা করুন এবং প্রয়োজনীয় হিসাবে সামঞ্জস্য করুন। আপনার উত্স সামগ্রী, ব্যবহারের ফিল্টার চেইন, নির্দিষ্ট প্ল্যাটফর্ম কনফিগারেশন ভেরিয়েবলগুলি (যেমন আপনার জিপিইউ এবং ড্রাইভার সংস্করণগুলি) ইত্যাদির উপর ভিত্তি করে আপনার মাইলেজটি অবশ্যই স্পষ্টভাবে পরিবর্তিত হবে etc.

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


1
এপিক! আপনাকে ধন্যবাদ, এতদিন ধরে হার্ডওয়্যার এনকোডিংয়ের সাথে কাজ করার পরে, আপনি কি সিপিইউ এনকোডিংয়ের মাধ্যমে এটি পুনরুদ্ধার করবেন বা মান / ফাইলসাইজের অসুবিধাগুলি এখনও এত বড়? আমি বলতে চাই যে এনভিএনসি এবং এনভিএনসি এইচকিউ-তে অনেকগুলি উন্নতি হয়েছে যেটি ডিফল্ট x264 এর তুলনায় সমমানের হওয়া উচিত
ডাঃ শামুক

@ ডাঃসনেল আমি প্রথমে আপনার কর্মপ্রবাহের প্রয়োজনীয়তা বিচার করার পরামর্শ দিয়েছিলাম এবং একটি হার্ডওয়্যার-ভিত্তিক এনকোডিং সমাধানে স্যুইচ করার আগে সমস্ত কারণ বিবেচনা করা উচিত। একটির জন্য, এনভিএনসি, অন্যান্য এসআইপি-ভিত্তিক এনকোডিং সমাধানগুলির মতো, সফ্টওয়্যার ভিত্তিক প্রয়োগের তুলনায় উচ্চতর শক্তি দক্ষতায় সর্বদা তাত্পর্যপূর্ণ দ্রুত সম্পাদন করবে, অন্য সমস্ত কারণ স্থির রয়েছে। এটির জন্য প্রত্যাশার মতো মানের বাণিজ্য বন্ধের গতি প্রয়োগ করুন, তারপরে অসমর্থিত বৈশিষ্ট্যগুলিতে মাপ দিন। উদাহরণস্বরূপ, এনভিএনসি-র সাথে আমরা সরাসরি এইচডিআর তথ্য সন্নিবেশ করতে পারি না এবং এর জন্য একটি বাহ্যিক সরঞ্জাম ব্যবহার করতে হবে।
林正浩

এর মতো সরঞ্জামগুলি: github.com/SK-Hardwired/nv_hevc_hdr_patcher
林正浩

আপনি চয়ন করেছেন scale_npp=w=1920:h=1080কারণ ফিল্টারগুলি এমন এক জিনিস যা জিপিইউ থেকে সবচেয়ে বেশি উপকৃত হয়? আর একটি জিনিস, বিটরেট সীমাবদ্ধ করা -b:v 1000k -minrate 500k -maxrate 3000kআউটপুট আকারটিকে আরও অনুমানযোগ্য বলে মনে হচ্ছে
ডঃ শামুক

হ্যাঁ, @ ডাঃ স্নেল অনুমানযোগ্য ফাইল আকারগুলি একটি অগ্রাধিকার।
27

3

নভেঙ্ক ব্যবহারের সাথে আমার অভিজ্ঞতা হ'ল আপনাকে কী বিটরেট চান তা বলতে হবে - এটি ভিবিআরের কাছে ডিফল্ট, যা ভাল, তবে কোনও সুরের পরিমাণ নেই যে এটি আপনাকে সর্বদা 2 এম গড় বিটরেট দিতে চায় না কি রেজোলিউশন ফাইল আপনি এটি খাওয়ান। এটি এনকোডারটিতে একটি ত্রুটির মতো মনে হচ্ছে; এটি প্রতিটি অন্যান্য ক্ষেত্রে ভবিষ্যদ্বাণীপূর্ণভাবে সম্পাদন করে তবে এটি -b:v 4M720p ফাইলের -b:v 8Mজন্য বা 1080p এর জন্য (উদাহরণস্বরূপ) প্রয়োজন । আপনিও চাইলে সম্ভবত এগুলি কিছুটা কমিয়ে দিতে পারেন।


1

অডিওর জন্য লিভভের্বিস ধীর বলে মনে হচ্ছে। ac3 আপনাকে 15% + গতি বাড়িয়ে তুলবে।

আপনার ভিডিও ড্রাইভারের সাথে কিছু ভুল হয়েছে তা বলা বা আপনি ffmpeg এর একটি পুরানো অনুলিপি ব্যবহার করছেন। q আমার কাছে আপনার ক্লিপ নেই, তবে আমি আমার পিভিআর থেকে একটি এসডি টিএস ফাইল ধরেছি এবং আপনার সেটিংস ব্যবহার করেছি।

আমি একটি জিটিএক্স 750 (টিআইবিবিহীন) (সস্তার একটি) এ 700fps (আপনার সেটিংস) পেয়েছি

আমি 925fps পেয়েছি (ac3 অডিও সহ আপনার সেটিংস)

অন্যান্য সুপারিশ আমি করতে পারি:

আপনার কিউম্যাক্সটি প্রায় 23 তে পরিবর্তন করুন।


আমি এটি একটি পুরানো জিটিএক্স 760 দিয়ে পরীক্ষা করেছি আমি এই কমান্ডের সাথে 400FPS এর সাথে পেয়েছি ffmpeg40\bin\ffmpeg -hwaccel cuvid -c:v mpeg2_cuvid -i "E:\input.ts" -c:v h264_nvenc "E:\output.mp4"আপনি দয়া করে আপনার কোডটি AC3 i.stack.imgur.com/CNaWM.png এর
ডঃ শামুক

এটি আপনার কমান্ড লাইনে কাজ করা উচিত। এটি আপনার -c: v h264_nvenc -c: a ac3 এর পরে যুক্ত করুন আপনার 2 সেশনটি চাপতে সক্ষম হওয়া উচিত। একটি দ্বিতীয় কমান্ড লাইন খুলুন এবং একই সময়ে অন্য .ts এনকোড করুন। আপনি যদি পছন্দ করেন তবে আমি আপনার .ts ফাইলগুলির মধ্যে একটি পরীক্ষা করে আপনার গতি এবং গুণমান পাম্প করার জন্য আরও কিছু করা যেতে পারে কিনা তা দেখতে সন্তুষ্ট হতে পারি be
ডন জিওভান্নি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.