ডাব্লুএমভি কে এমপি 4 তে রূপান্তর করা এত ধীর কেন?


12

আমি ডাব্লুএমভি থেকে এমপি 4 এফএফএমপিগের সাথে একটি ভিডিও রূপান্তর করার চেষ্টা করছি তবে এতে কয়েক ঘন্টা সময় লাগে। যদি আমি এভিআইতে রূপান্তরিত করার চেষ্টা করি তবে এটি প্রায় 10-15 মিনিট সময় নেয়।

ffmpeg সংস্করণ

ffmpeg version N-43206-gf857465
built on Aug  4 2012 16:10:39 with gcc 4.7.1 (GCC)

এমপি 4 তে রূপান্তর

ffmpeg -i input.wmv -vcodec libx264 output.mp4

libavutil      51. 66.100 / 51. 66.100
  libavcodec     54. 49.100 / 54. 49.100
  libavformat    54. 22.100 / 54. 22.100
  libavdevice    54.  2.100 / 54.  2.100
  libavfilter     3.  5.102 /  3.  5.102
  libswscale      2.  1.100 /  2.  1.100
  libswresample   0. 15.100 /  0. 15.100
  libpostproc    52.  0.100 / 52.  0.100
Input #0, asf, from 'input.wmv':
  Metadata:
    WMFSDKVersion   : 12.0.7601.17514
    WMFSDKNeeded    : 0.0.0.0000
    IsVBR           : 0
    encoder         : Lavf54.22.100
  Duration: 01:14:23.06, start: 0.000000, bitrate: 324 kb/s
    Stream #0:0: Video: msmpeg4 (MP43 / 0x3334504D), yuv420p, 1280x720, 15 tbr,
1k tbn, 1k tbc
[libx264 @ 03427620] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle Cac
he64
[libx264 @ 03427620] profile High, level 3.1
[libx264 @ 03427620] 264 - core 125 r2208 d9d2288 - H.264/MPEG-4 AVC codec - Cop
yleft 2003-2012 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deb
lock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 m
e_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chro
ma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 i
nterlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1
b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=15 scenec
ut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=
0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'output.mp4':
  Metadata:
    WMFSDKVersion   : 12.0.7601.17514
    WMFSDKNeeded    : 0.0.0.0000
    IsVBR           : 0
    encoder         : Lavf54.22.100
    Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 1280x720, q=-1--
1, 15 tbn, 15 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (msmpeg4 -> libx264)

এর সাথে এমপি 4 তে রূপান্তর copy

ffmpeg -i input.wmv -c:v:1 copy output.mp4

  libavutil      51. 66.100 / 51. 66.100
  libavcodec     54. 49.100 / 54. 49.100
  libavformat    54. 22.100 / 54. 22.100
  libavdevice    54.  2.100 / 54.  2.100
  libavfilter     3.  5.102 /  3.  5.102
  libswscale      2.  1.100 /  2.  1.100
  libswresample   0. 15.100 /  0. 15.100
  libpostproc    52.  0.100 / 52.  0.100
Input #0, asf, from 'input.wmv':
  Metadata:
    WMFSDKVersion   : 12.0.7601.17514
    WMFSDKNeeded    : 0.0.0.0000
    IsVBR           : 0
    encoder         : Lavf54.22.100
  Duration: 01:14:23.06, start: 0.000000, bitrate: 324 kb/s
    Stream #0:0: Video: msmpeg4 (MP43 / 0x3334504D), yuv420p, 1280x720, 15 tbr,
1k tbn, 1k tbc
[libx264 @ 03437620] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle Cac
he64
[libx264 @ 03437620] profile High, level 3.1
[libx264 @ 03437620] 264 - core 125 r2208 d9d2288 - H.264/MPEG-4 AVC codec - Cop
yleft 2003-2012 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deb
lock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 m
e_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chro
ma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 i
nterlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1
b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=15 scenec
ut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=
0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'output.mp4':
  Metadata:
    WMFSDKVersion   : 12.0.7601.17514
    WMFSDKNeeded    : 0.0.0.0000
    IsVBR           : 0
    encoder         : Lavf54.22.100
    Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 1280x720, q=-1--
1, 15 tbn, 15 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (msmpeg4 -> libx264)

এর সাথে এভিআইতে রূপান্তর copy

ffmpeg -i input.wmv -c:v:1 copy output.avi

Input #0, asf, from 'input.wmv':
  Metadata:
    WMFSDKVersion   : 12.0.7601.17514
    WMFSDKNeeded    : 0.0.0.0000
    IsVBR           : 0
    encoder         : Lavf54.22.100
  Duration: 01:14:23.06, start: 0.000000, bitrate: 324 kb/s
    Stream #0:0: Video: msmpeg4 (MP43 / 0x3334504D), yuv420p, 1280x720, 15 tbr,
1k tbn, 1k tbc
Output #0, avi, to 'output.avi':
  Metadata:
    WMFSDKVersion   : 12.0.7601.17514
    WMFSDKNeeded    : 0.0.0.0000
    IsVBR           : 0
    ISFT            : Lavf54.22.100
    Stream #0:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 1280x720, q=2-31, 20
0 kb/s, 15 tbn, 15 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (msmpeg4 -> mpeg4)

আমার কি কিছু অতিরিক্ত পরামিতি পাস করতে হবে?


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

@ এসএলএইচএইচসি: কম্পিউটারটি খুব দ্রুত E5400 2.7GHz নয় তবে এমপি 4 এর জন্য এটি যখন আভির পক্ষে দ্রুত হয় তবে কেন এটি ধীর হয়?
জিওরগি

আমি আপনার প্রশ্নের কোনও এভিআই আউটপুট দেখতে পাচ্ছি না। আপনি কি পুরো আউটপুট দিয়ে এটি আপডেট করতে পারবেন?
slhck

@slhck: যোগ AVI আউটপুট
Giorgi

উত্তর:


17

স্ট্রিম অনুলিপি করা

আপনি যখন কল করবেন তখন -c:v:1 copyএফএফম্পেগ বিদ্যমান ভিডিও বিটস্ট্রিমটি নেবে এবং স্ট্রিমটি এটি অনুলিপি করবে। ভিডিও বিটস্ট্রিমটি কেবলমাত্র বাইরের পাত্রে যেমন: ডাব্লুএমভি, এভিআই বা এমপি 4- তে আবদ্ধ হয় - আপনার আসল ভিডিও বিটস্ট্রিমটি msmpeg4এবং এর মতো থাকবে।

আমি যে বিষয়ে কথা বলছি সে সম্পর্কে আপনি যদি আরও জানতে চান তবে এখানে দেখুন: কোডেক (উদাহরণস্বরূপ DivX?) কী এবং কোন ফাইল ফর্ম্যাট (যেমন এমপিজি) থেকে এটি কীভাবে পৃথক হয়?

বিটস্ট্রিমটি অনুলিপি করার সময়, এফএফম্পেগকে প্রকৃত ভিডিওটি ডিকোড এবং পুনরায় এনকোড করার প্রয়োজন হয় না। এটির জন্য কেবলমাত্র ভিডিও বিট স্ট্রিমটিকে একটি নতুন ধারক বিন্যাসে একত্রীকরণ করা দরকার যা প্রায়শই একটি সাধারণ অপারেশন এবং তাই বেশি সময় নেয় না।

এনকোডিং

এর বিপরীতে, যদি আপনি কল করেন -vcodec libx264(বা -c:v libx264, সিনট্যাক্সটি আপনার ব্যবহার করা উচিত কারণ vcodecহ্রাস করা হয়েছে), এফএফম্পেগ ভিডিও বিটস্ট্রিমটি msmpeg4কোনও কাঁচা ফর্ম্যাটে ডিকোড করতে বাধ্য হবে , তারপরে এটি x264কোনও এইচ .264 এনকোডারকে পাইপ করুন ।

x264 দ্রুত, তবে তবুও, এনকোডিং ভিডিওতে সময় লাগে - বিশেষত যখন এটি 720p সামগ্রী। এবং এটি এক ঘণ্টারও বেশি সময় নিতে পারে, বিশেষত যদি আপনার ইনপুটটি ইতিমধ্যে এক ঘণ্টার বেশি দীর্ঘ হয়। এছাড়াও, আপনার সিপিইউ দ্রুততম নাও হতে পারে। XVID এর মতো পুরানো এমপিইজি -4 ভিজ্যুয়াল এনকোডারগুলি এখনও প্রায় রয়েছে এবং এটি খুব জনপ্রিয়: এইচ .২64৪ কোডেকের চেয়ে এনকোড করতে তারা কম সময় নেয়। মানের তুলনায় ফাইলের আকারের ক্ষেত্রে তারা আপনাকে সেরা পারফরম্যান্স না দিতে পারে তবে তারা দ্রুত।

যা বলা হচ্ছে: আপনি প্রিসেট জোর করে x264 এনকোডিং গতি বাড়িয়ে দিতে পারেন। প্রিসেটগুলি এনকোডার অপ্টিমাইজেশন সেটিংস এবং এর থেকে শুরু করে: অতি মাত্রাতিরিক্ত, প্রাতঃরাশ, অতি নৈশভোজ, দ্রুত, দ্রুত, মাঝারি, ধীর, ধীর, খুব সরল। আপনার আদেশটি এর পরে দেখতে পেল:

ffmpeg -i input.wmv -c:v libx264 -preset fast out.mp4

এটি প্রিসেট ছাড়া দ্রুত চালানো উচিত। একমাত্র ত্রুটিটি হ'ল এটি তুলনামূলকভাবে একই সংক্ষেপণের হারের জন্য ভাল মানের অর্জন করে না, উদাহরণস্বরূপ -preset veryslow,।

তা ছাড়া, দ্রুত সিপিইউতে বিনিয়োগ করা এবং আপনি এক্স 264 সাপোর্ট দিয়ে এফএফএমপিগের সাম্প্রতিক বিল্ডটি চালাচ্ছেন তা নিশ্চিত করার ব্যতীত আপনি খুব কিছু করতে পারবেন না।

আরও তথ্যের জন্য দেখুন FFmpeg উইকি: H.264 এনকোডিং গাইড


উত্তরের জন্য ধন্যবাদ. আমি পরিষ্কার ছিলাম কিনা তা নিশ্চিত নই তবে আমি যদি অনুলিপি ব্যবহার করি তবে এটি এখনও খুব ধীর। আমি আপনার আদেশটি চেষ্টা করেছি এবং এটি 5 মিনিটের পরে কেবল 4 সেকেন্ডে প্রক্রিয়া করেছে। আমার ভিডিওটি প্রায় 75 মিনিট দীর্ঘ এবং এভিতে রূপান্তর করতে কেবল 15 মিনিট সময় লাগে তবে এমপি 4 কয়েক ঘন্টা লাগে।
জিওরগি

সুতরাং কোনটি এনকোডিংয়ের জন্য সেরা, libx264 বা h264?
Yohanes এআই

@ এনপিই libx264আপনি যখন এনকোডার হিসাবে ´h264` নির্দিষ্ট করেন তখন ডিফল্ট ব্যবহারের দ্বারা ffmpeg হিসাবে কোনও পার্থক্য নেই ।
ছিটিয়ে দিন

1
@ পিটারকর্ডস আমি এটিকে পরিবর্তন করেছি fast। কিছু আকর্ষণীয় পরিসংখ্যান (যদি ভিএমএএফকে এখানে বিশ্বাস করা যায়): স্ট্রিমিংওয়্যারিংসেন্টার.
com

1
@ পিটারকর্ডস কিছু আরসি অপ্টিমাইজেশন রয়েছে যা ভিএমএএফ একিউ: github.com/Netflix/vmaf/issues/21 এর মতো হ্যান্ডেল করে না । আমি উচ্চ মানের 1080p বনাম ক্রেপি ইউএইচডি অংশের সাথে একমত। ব্লগের লেখক কীভাবে তার পরীক্ষার উন্নতি করতে পারেন সে সম্পর্কে পরামর্শের জন্য খুব উন্মুক্ত; কিছুক্ষণ আগে আমি x265 এর জন্য কিছু ভুল কনফিগারেশনের বিষয়ে ইতিমধ্যে মন্তব্য করেছি।
14-28 এ

3

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

সুতরাং দেখা যাচ্ছে আপনি ডাব্লুএমভি-> এমপি 4 রূপান্তরটির খুব ধীর বা খুব এইচডিডি নিবিড় সংস্করণ থেকে বেছে নিতে পারেন এবং আপনার অন্য কোনও পছন্দ নেই।

ডাব্লুএমভি কে ক্ষতিহীন এভিআইতে রূপান্তর করা: ffmpeg.exe -i screen.wmv -vcodec ffv1 screen.avi তারপরে লসলেস এভিআই কে এমপি 4 এ রূপান্তর করা (বা ওয়েবএম, এতে কিছু যায় আসে না) ffmpeg.exe -i স্ক্রিন.ইভি স্ক্রিন.এমপি 4

অনেক দ্রুত!

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