আমি ভিডিওটিকে "অনির্ধারিত" না করে স্পষ্টভাবে বিটি 601 হিসাবে ট্যাগ করতে চাই। আমি জানি খেলোয়াড়রা সাধারণত 1280 পিক্সেলের চেয়েও কম প্রশস্ত ভিডিওর জন্য ডিফল্ট হিসাবে bt.601 বেছে নেয় তবে আমি এটি স্পষ্ট করে বলতে চাই যে bt.601 একটি ভিডিওর জন্য সঠিক রঙের ম্যাট্রিক্স।
স্টিকিং পয়েন্টটি হ'ল bt601
ffmpeg বা libx264, কেবল বিটি 709 এবং কিছু অন্যান্যর জন্য কোনও বিকল্প নেই ।
আমার কাছে এমন কিছু ভিডিও রয়েছে যা এইচডি থেকে ডাউনস্কেল করা ছিল এবং এখনও বিটি 709-এ রয়েছে তবে সঠিকভাবে ট্যাগ করা হয়নি। সুতরাং আমি যখন কোনও ভিডিও দেখি, আমাকে মাঝে মধ্যে আমার প্লেয়ারটিকে বিটি 707- তে ম্যানুয়ালি টগল করতে হয় । Bt.601 হিসাবে সুস্পষ্টভাবে ট্যাগ করা ভবিষ্যতের দর্শকদের সাথে যোগাযোগ করবে (উদাহরণস্বরূপ আমি নিজেই) যে এটি অবশ্যই বিটি 601, এবং আমি যখন এটির সাথে দেখি তখন কোনও ভুল-ট্যাগড বিটি 7070 ভিডিও নয় mediainfo
।
এর জন্য আরেকটি ব্যবহারের ক্ষেত্রে হ'ল আপনি যদি কোন bt.601 ভিডিওটিকে 1280 বা তার চেয়ে বেশি উচ্চতর রঙের ম্যাট্রিক্স রূপান্তর (ব্যবহার করে -vf colormatrix
) না করে থাকেন তবে প্লেয়াররা ভুলভাবে বিটি .709 ধরে নেবেন যদি আপনি বর্ণের তথ্যটি অনির্ধারিত রেখে দেন।
এফএফএমপিগের colormatrix
ভিডিও ফিল্টার কোনও bt601
ইনপুট বা আউটপুট রঙের ম্যাট্রিক্স হিসাবে সমর্থন করে তবে ট্যাগও সেট করে না। (যেহেতু এটিতে ffmpeg এর রঙ বিকল্পগুলি সেট করার পার্শ্ব-প্রতিক্রিয়া নেই, তাই এটি এমনকি এসসিআর এবং ডিস্টেটের মতো পরিচালনা করতে অস্বীকার করে -vf colormatrix=bt601:bt601
))
ffmpg in -color_primaries bt709 -color_trc bt709 -colorspace bt709 out
যুবা <-> আরজিবিতে বিটি.709 ব্যবহার করে আউটপুট ভিডিওটিকে ট্যাগ করবে। ট্যাগগুলি কেবল ভিডিও পাত্রে নয়, বিটস্ট্রিমের মধ্যেই শেষ হয়েছে (যেহেতু এটি কোনও কোডেক-নির্দিষ্ট জিনিস বলে মনে হয়, কোনও ধারক জিনিস নয়, এমপথ এবং এমকেভি পাত্রে অন্তত)।
যেমন mediainfo
আউটপুট:
Complete name : out.mkv
...
Writing application : Lavf57.14.100
Writing library : Lavf57.14.100
Video
ID : 1
Format : AVC
...
Writing library : x264 core 148 r2638+4 afcf21c
Encoding settings : cabac=1 / ref=8 / ...
Language : English
Default : Yes
Forced : No
Color primaries : BT.709
Transfer characteristics : BT.709
Matrix coefficients : BT.709
সুতরাং bt.709 ট্যাগ করা সহজ। সমস্যাটি হচ্ছে, আমি কোথাও বিটি 601 দেখতে পাচ্ছি না। অন্য নামগুলির মধ্যে একটির কি এটির জন্য একটি নাম বা এটি স্পষ্টভাবে নির্দিষ্ট করার কোনও উপায় নেই?
x264 --fullhelp output:
--colorprim <string> Specify color primaries ["undef"]
- undef, bt709, bt470m, bt470bg, smpte170m,
smpte240m, film, bt2020
--transfer <string> Specify transfer characteristics ["undef"]
- undef, bt709, bt470m, bt470bg, smpte170m,
smpte240m, linear, log100, log316,
iec61966-2-4, bt1361e, iec61966-2-1,
bt2020-10, bt2020-12
--colormatrix <string> Specify color matrix setting ["???"]
- undef, bt709, fcc, bt470bg, smpte170m,
smpte240m, GBR, YCgCo, bt2020nc, bt2020c
ffmpeg -h full
এর রঙ বিকল্পগুলির জন্য বিকল্পগুলির একই সেট দেখায়, যা ffmpeg এর -c:v libx264
ভিডিও কোডেক x264 এ চলে যায়। এইগুলির মধ্যে কোনওটি কী বিটি 601-র জন্য কোনও এলিয়াস, বা সংখ্যার সমতুল্য রঙের ম্যাট্রিক্স রয়েছে?
-color_primaries smpte170m -color_trc smpte170m -colorspace smpte170m
)।