আরজিবি চিত্রগুলিকে অ্যাভকনভি / এফএফএমপিএইজে লসলেস ভিডিওতে রূপান্তর করা


2

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

এটি আমি ব্যবহার করছি এমন অ্যাঙ্কনভের সংস্করণ:

avconv version 0.8.6-4:0.8.6-0ubuntu0.12.04.1, Copyright (c) 2000-2013 the Libav developers
  built on Apr  2 2013 17:02:36 with gcc 4.6.3

প্রতিটি চিত্রের আকার 1280 × 800 পিক্সেল। এগুলিতে কোনও ফটোগ্রাফিক উদ্দেশ্য থাকে না, তবে বিশেষত বিশিষ্ট নিদর্শন।

আমি qtrleকোডেকটি ব্যবহার করেছি কারণ স্পষ্টতই এটি একটি ক্ষতিহীন কোডেক যা অ্যানিমেটেড জিআইএফ বা অ্যানিমেটেড পিএনজির মতো কাজ করে। যাইহোক, ভিডিওতে রূপান্তর করার সময় মনে হয় একটি রঙ স্পেস রূপান্তর ("ফিল্টার") পিক্সেলগুলির সাথে গোলমাল করছে।

এটি অ্যাভকনভ আউটপুট:

$ avconv -f image2 -r 30 -i frames.png/wth-%08d.png -vcodec qtrle -pix_fmt rgb24 -t 15 qtrle-30fps-rgb.mov
avconv version 0.8.6-4:0.8.6-0ubuntu0.12.04.1, Copyright (c) 2000-2013 the Libav developers
  built on Apr  2 2013 17:02:36 with gcc 4.6.3
Input #0, image2, from 'frames.png/wth-%08d.png':
  Duration: 00:11:17.96, start: 0.000000, bitrate: N/A
    Stream #0.0: Video: png, bgra, 1280x800, 30 fps, 30 tbr, 30 tbn, 30 tbc
File 'qtrle-30fps-rgb.mov' already exists. Overwrite ? [y/N] y
[buffer @ 0x740a00] w:1280 h:800 pixfmt:bgra
[avsink @ 0x742ac0] auto-inserting filter 'auto-inserted scaler 0' between the filter 'src' and the filter 'out'
[scale @ 0x743680] w:1280 h:800 fmt:bgra -> w:1280 h:800 fmt:rgb24 flags:0x4
Output #0, mov, to 'qtrle-30fps-rgb.mov':
  Metadata:
    encoder         : Lavf53.21.1
    Stream #0.0: Video: qtrle, rgb24, 1280x800, q=2-31, 200 kb/s, 30 tbn, 30 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (png -> qtrle)
Press ctrl-c to stop encoding
frame=  450 fps= 22 q=0.0 Lsize=  126056kB time=15.00 bitrate=68843.4kbits/s    
video:126052kB audio:0kB global headers:0kB muxing overhead 0.003441%

এটি একটি আসল পিএনজি চিত্র ফাইল:

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

এটি পুনরায় খেলানো হওয়া ভিডিওর একটি স্ক্রিনশট:

ভিডিওটির স্ক্রিনশট পুনরায় খেলানো হচ্ছে

দয়া করে মনে রাখবেন যে পার্থক্যগুলি লক্ষ্য করার জন্য আপনাকে এই চিত্রগুলি তাদের মূল 1280 × 800 রেজোলিউশনে দেখতে হবে।

এখানে পাশাপাশি পাশাপাশি তুলনা করা হয়েছে , বাম ছবিটি আসল এবং ডান চিত্রের সাথে ভিডিও এনকোডিংয়ের পরে ফলাফল:

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

আমি পিএনজির একটি সিরিজ থেকে সত্যিকারের ক্ষতিহীন, পিক্সেল-নিখুঁত ভিডিও ফাইল তৈরির উপায় আছে কি?


মজাদার. আপনার ইনপুট ফাইলটি দেখায় যেমনটি bgraআমার জন্য (ইন ffmpeg) এটি হিসাবে দেখায় rgba। যাইহোক, আপনি কি -pix_fmt argbপরিবর্তে আউটপুট সেট করার চেষ্টা করতে পারেন ?
slhck

আমি আরগিব চেষ্টা করেছিলাম, ফলাফলটি ঠিক আগের মতো দেখায়।

হাই @ স্লহ্যাক, আপনার মন্তব্য থেকে শুরু করে আমি পিএনজির ফর্ম্যাটটি পরিবর্তন করার চেষ্টা করেছি যাতে কোনও স্বয়ংক্রিয় ফিল্টারের প্রয়োজন হয় না required -flatten +matteসত্যিকারের আরজিবি 24 পিএনজি ফাইলগুলি পেতে আমি ইমেজম্যাগিক- এ বিকল্পটি ব্যবহার করেছি । ফলাফলটি ছিল যে কোনও ফিল্টার 'স্বয়ংক্রিয়ভাবে সন্নিবেশিত হয়নি' , তবে ফলাফলটি এখনও ভুল ছিল। এখন ভাবছি কীভাবে 'এনকোডার' পরিবর্তন করবেন encoder : Lavf53.21.1?

এনকোডারটি মূলত যা অন্তর্নির্মিত হয় avconv(বা ffmpegআপনি যদি এফএফপিপেগ ব্যবহার করেন)। আপনি কেবলমাত্র একটি সাম্প্রতিক সংস্করণ ব্যবহার করে এটি পরিবর্তন করতে পারবেন। আমার জানা মতে লিবাভ কোনও বিল্ড অফার করে না avconv, তাই আপনাকে নিজের তৈরি করতে হবে। অথবা তাদের ডাউনলোড পৃষ্ঠাffmpeg থেকে একটি স্ট্যাটিক বিল্ড ডাউনলোড করুনলিবাভ এবং এফএফপিপিগের
slhck

এটি যদি বলা হয় যে আপনি যদি সাম্প্রতিক বিল্ডটির সাথে এটি পুনরুত্পাদন করতে পারেন তবে এফএফএমপিগ বা লিবাভের সাথে কোনও বাগ রিপোর্ট ফাইল করার বিষয়ে যদি আপনার দৃ a় অনুভূতি থাকে যে রঙ রূপান্তরটি সঠিক নয় (যদিও এটি হওয়া উচিত)।
slhck

উত্তর:


2

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

$ ffmpeg -i input.png -vcodec qtrle out.mov

$ ffmpeg -i input.png -f framecrc -
$ ffmpeg -i out.mov -f framecrc -

এটি ফ্রেম ডেটা চেকসামগুলি আউটপুট দেবে।

ভিজ্যুয়াল তুলনার জন্য, ক্ষতিহীন ভিডিওটিকে একক ফ্রেমে ফিরে রূপান্তর করুন এবং সেগুলির সাথে তুলনা করুন।


কোডেকগুলির উপর নির্ভর করে আপনার -pix_fmtলসলেস-ডিকোডড ডেটার একই ব্যবস্থা crc / md5 ব্যবহার করতে হতে পারে । উদাহরণস্বরূপ ffmpeg এর আরজিবি h.264 ডিকোডার আউটপুট প্ল্যানার আরজিবি, একটি ফর্ম্যাট ffmpeg কলগুলিতে gbrp
পিটার কর্ডেস

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