কীভাবে গুণমান বজায় রেখে ffmpeg ব্যবহার করে 4k থেকে 1080p ডাউনসাম্পল করবেন?


21

আমার এমপি 4 ফর্ম্যাটে কিছু 4K 3840x2160 ফুটেজ রয়েছে যা আমাকে 1080p তে নামিয়ে আনতে হবে। আমি দৌড়ানোর চেষ্টা করেছি

ffmpeg -i orig.mp4 -vf scale=1920:1080 smaller.mp4  

তবে ফলাফলটি খুব খারাপ মানের, পুরো চিত্রটি স্কোয়ার "টাইলস" দিয়ে তৈরি হয়েছে যেন আমি 4: 1 বৃদ্ধি করছি।

এই কমান্ডটি চালানোর ফলাফলটি এখানে:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'origs/P1000003.MP4':
  Metadata:
    major_brand     : mp42
    minor_version   : 1
    compatible_brands: mp42avc1
    creation_time   : 2015-02-19 17:10:38
  Duration: 00:05:14.48, start: 0.000000, bitrate: 95903 kb/s
    Stream #0.0(und): Video: h264 (High), yuvj420p, 3840x2160 [PAR 1:1 DAR 16:9], 95792 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
    Metadata:
      creation_time   : 2015-02-19 17:10:38
    Stream #0.1(und): Audio: aac, 48000 Hz, stereo, s16, 125 kb/s
    Metadata:
      creation_time   : 2015-02-19 17:10:38
Incompatible pixel format 'yuvj420p' for codec 'mpeg4', auto-selecting format 'yuv420p'
[buffer @ 0x22a3420] w:3840 h:2160 pixfmt:yuvj420p
[scale @ 0x22a3ce0] w:3840 h:2160 fmt:yuvj420p -> w:1920 h:1080 fmt:yuv420p flags:0x4
Output #0, mp4, to '1-short.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 1
    compatible_brands: mp42avc1
    creation_time   : 2015-02-19 17:10:38
    encoder         : Lavf53.21.1
    Stream #0.0(und): Video: mpeg4, yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 25 tbn, 25 tbc
    Metadata:
      creation_time   : 2015-02-19 17:10:38
    Stream #0.1(und): Audio: libvo_aacenc, 48000 Hz, stereo, s16, 200 kb/s
    Metadata:
      creation_time   : 2015-02-19 17:10:38
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1
Press ctrl-c to stop encoding
frame=  125 fps=  6 q=31.0 Lsize=     968kB time=5.00 bitrate=1586.7kbits/s    
video:842kB audio:123kB global headers:0kB muxing overhead 0.421047%

আমি অভিজ্ঞতা থেকে জানি যে ffmpeg একটি দুর্দান্ত সরঞ্জাম, সুতরাং আমি অবশ্যই বিকল্পগুলি / পরামিতিগুলি একরকম সন্ধান করব ...

কিভাবে আমি এটি করতে পারব?


আপনার কমান্ড থেকে সম্পূর্ণ, সম্পূর্ণ কনসোল আউটপুট প্রদর্শন করুন। আপনি কেবল একটি ছোট অংশকে এনকোড করতে পারেন, সুতরাং -t 10একটি 10 ​​সেকেন্ড আউটপুট তৈরি করতে যুক্ত করুন । আপনি কেন ডাউনস্কেল করতে চান? আপনার স্কেলড আউটপুট ব্যবহারের ক্ষেত্রে কী? এই তথ্যটি আমাকে আরও সঠিক উত্তর প্রদান করতে সহায়তা করবে।
লগন

@ লর্ডনেকবার্ড আমি সবেমাত্র কনসোল আউটপুট যুক্ত করেছি। আমি ডাউনস্কেল করতে চাই যাতে আমার সাথে কাজ করা লোকদের সাথে আমি আরও সহজেই এই ক্লিপগুলি ভাগ করতে পারি।
লারা মাইকেলগুলি

1
ভুলে যাবেন না -c:a copy, যেহেতু আপনি চান না বা অডিও স্ট্রিমটিকে পুনরায় এনকোড করা প্রয়োজন। -map 0যে কোনও অধ্যায় মেটাডেটা বা অন্য জিনিসগুলি অনুলিপি করতে ব্যবহার করুন । (ffmpeg কেবলমাত্র ডিফল্টরূপে 1 ভিড + 1 অডি লাগে))
পিটার কর্ডেস

1
এছাড়াও, -sws_flags lanczos+print_infoডিফল্টের চেয়ে আরও ভাল স্কেলিং আলগো ব্যবহার করবে (আমার মনে হয় বিলিনার)। stlb এর উত্তরটিতে প্রক্রিয়াটির ভিডিও এনকোডিং অংশটি কভার করা হয়েছে।
পিটার কর্ডেস

2
বিকল্প হিসাবে পিটারকর্ডস scale=1920:-2:flags=lanczos,। আমি -2আমার অস্তিত্বের উত্তরের জন্য স্কেল জন্য উল্লেখ করতে যাচ্ছি । যারা জানেন না তাদের জন্য -2আপনি প্রস্থ বা উচ্চতা স্থাপন করতে পারেন , এবং এটি স্বয়ংক্রিয়ভাবে অনুপাত সংরক্ষণ করে এবং মানটিকে 2 দ্বারা বিভাজ্য করে তোলে (yuv420p আউটপুটগুলির জন্য libx264 দ্বারা প্রয়োজনীয়) সঠিক মূল্য প্রদান করবে ।
লগন

উত্তর:


17

Ffmpeg এর জন্য ডিফল্ট সেটিংসগুলি খুব নিম্নমানের, এবং যেহেতু আপনি কোনও কোডেক বা মানের পরামিতি নির্দিষ্ট করেন না এটি কেবল ডিফল্টগুলি ব্যবহার করে (আমি জানি না কেন ডিভগুলি এটি স্থির করে না কারণ এটি ফোরামে প্রচুর প্রশ্ন উত্পন্ন করে সর্বত্র)।

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

-c:v libx264 -crf 20 -preset slowকমান্ড যুক্ত করার চেষ্টা করুন ।

  • -c:v libx264 এটি libx264 এনকোডার ব্যবহার করতে বলে,
  • crf 20 কনস্ট্যান্ট রেট ফ্যাক্টর কোয়ান্টেসার ব্যবহার করে (যার বিপরীতে বিভেদযুক্ত বিট রেট, তবে ধ্রুব মানের) 20 এর মান সহ (বেশ ভাল মানের; নিম্নতর ভাল মানের / বড় ফাইলগুলি, উচ্চতর ক্রপিয়ের / ছোট),
  • slowপ্রিসেট এনকোডার সেটিংস একটি গুচ্ছ মানে এটি ডিফল্ট (মাঝারি) তুলনায় তা কিছুটা প্রচেষ্টা রাখে জন্য একটি শর্টকাট নেই।

আপনি এই সেটিংসগুলিকে ঝাপটান করতে পারেন, কী টুকরো টুকরো টুকরো টুকরো করতে পারে তার নির্দেশাবলীর জন্য h.264 এনকোডিং গাইডটি দেখুন ।

এবং আপনি যদি অডিওকে যেমন ব্যবহার করেন তবে যুক্ত করুন c:a copy। এটি পুনরায় এনকোডিং ছাড়াই অডিও স্ট্রিমের একটি সরাসরি অনুলিপি করবে।


ডিফল্টগুলি এনকোডারের উপর নির্ভর করে। libx264 সাধারণত এমপি 4 আউটপুট জন্য ডিফল্ট হিসাবে ব্যবহৃত হয়, এবং এটি কোনও অতিরিক্ত বিকল্প ছাড়াই একটি দুর্দান্ত মানের আউটপুট উত্পাদন করে, তবে প্রশ্নে ffmpeg বিল্ডটি এই এনকোডারটিকে সমর্থন করে না বলে মনে হয় এবং তাই mpeg4এমপিইজি -4 পার্ট 2 ভিডিও উত্পাদনকারী প্রাচীন এনকোডার ব্যবহার করে , এবং এটির পূর্বনির্ধারিত সময়গুলি হায়ডের সময় আরও বুদ্ধিমান ছিল (যেমন 320x240 ইত্যাদি)।
লগন

শুনে ভাল লাগল যে libx264 এখন ডিফল্ট।
stib

আমি বলতে চাই crf 20 সুন্দর অভিশাপ ভাল। 18 কার্যত ক্ষয়ক্ষতিহীন। আমি আমার ভিডিওগুলি বেশিরভাগ 23-এ করি
ব্যবহারকারী 24601

আমার বেশিরভাগ কাজ এসডি কার্ড থেকে স্থানীয়ভাবে কাজ করা প্লেব্যাক ডিভাইসে প্রদর্শিত হয়। আকারের জন্য আমার খুব বেশি অনুকূলিতকরণের দরকার নেই, তাই আমি মানেরটি যতটা পারি ততই রেখে দেব leave আমি সম্মত, আমি ওয়েবে ডেলিভারি দিলে আমি এটিকে ডায়াল করব।
স্টিব

এটি আমাকে সাহায্য করেনি। ভিডিওটিতে যেখানেই গতি দেখা দেয় সেখানে আমার এখনও অদ্ভুত অদ্ভুততা রয়েছে। 18 এর সিআরএফ, প্রসেট ধীর করতে হবে। 2.7k-> 1080p।
rewolf

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