এনভিডিয়ার এনকোড সীমাটি বাইপাস করার জন্য উত্সর্গীকৃত এই গিথুব পৃষ্ঠায় উইন্ডোজ সমর্থন যুক্ত হয়েছে: https://github.com/keylase/nvidia-patch/tree/master/win
গ্রাহক এনভিডিয়া জিপিইউগুলিতে আরোপিত এনকোড সীমাটির কারণে এখন অবধি আমি আমার জিপিইউ এবং সিপিইউ জুড়ে আমার 5 টি লাইভ স্ট্রিমগুলি এনকোড করছি, সুতরাং আমার জিপিইউতে 2 টি স্ট্রিম এবং আমার সিপিইউতে 3 টি স্ট্রিম রয়েছে। তবে এই প্যাচটির সাহায্যে আমি এখন কেবল আমার জিপিইউ দিয়ে সমস্ত 5 টি স্ট্রিমকে এনকোড করতে পারি, যা আমাকে ভাবতে চলেছে - 5 টি পৃথক আউটপুট ভিডিও এনকোডিংয়ের বিপরীতে সম্ভবত আমি সমস্ত স্ট্রিম 1 টি ফাইলের মধ্যে এনকোড করতে পারি।
বিভাগ বিভাজনের প্রকৃতির কারণে একটি 5 টি পৃথক আউটপুট ফাইলকে সিঙ্ক্রোনাইজ করে রাখার জন্য একটি কমান্ড তৈরি করা বেশ কঠিন ছিল। তাই আমি ভাবছি যে আমি যদি একটি ফাইলে সমস্ত কিছু করি তবে আমি সেসব কিছু ঝামেলা বাইপাস করতে এবং আমার কর্মপ্রবাহ / আদেশটি সহজ করতে পারি। তবে, আমি খুঁজে পেয়েছি যে আমি যখন একটি আউটপুট ফাইলে সমস্ত কিছু রাখার চেষ্টা করি তখন আমি রিয়েল টাইম ট্রান্সকোড করতে পারি না।
উদাহরণ কমান্ড:
ffmpeg -y -hide_banner -thread_queue_size 9999 -indexmem 9999 -f dshow -rtbufsize 2147M -video_size 3840x2160 `
-framerate 60 -pixel_format nv12 -i video="Video (Pro Capture)":audio="ADAT (3+4) (RME Fireface UC)" `
-thread_queue_size 9999 -indexmem 9999 -f dshow -rtbufsize 2147M -video_size 3840x2160 -framerate 60 -pixel_format nv12 `
-i video="AVerMedia HD Capture GC573 1":audio="Analog (1+2) (RME Fireface UC)" `
-thread_queue_size 9999 -indexmem 9999 -f dshow -rtbufsize 2147M -video_size 1920x1080 -framerate 60 -pixel_format yuv420p `
-i video="Game Capture HD60 Pro (Video) (#01)":audio="Game Capture HD60 Pro (Audio) (#01)" `
-thread_queue_size 9999 -indexmem 9999 -f dshow -rtbufsize 2147M -i audio="ADAT (5+6) (RME Fireface UC)" `
-thread_queue_size 9999 -indexmem 9999 -f dshow -rtbufsize 2147M -i audio="SPDIF/ADAT (1+2) (RME Fireface UC)" `
-c:v h264_nvenc -preset: llhp -pix_fmt nv12 -b:v 288M -minrate 288M -maxrate 288M -bufsize 288M -c:a aac -ar 44100 `
-b:a 384k -vsync 1 -max_muxing_queue_size 9999 -map 0 -map 1 -map 2 -map 3 -map 4 `
-f segment -segment_time 600 -segment_wrap 9 -reset_timestamps 1 -segment_format_options max_delay=0 `
C:\Users\djcim\Videos\FFmpeg\FFmpeg%02d.ts
উপরের কমান্ডটি রিয়েল টাইম ট্রান্সকোড করে না, প্রায় .6x গতিতে বসে। তবে আমি যখন কেবল একাধিক আউটপুটগুলিতে সমস্ত কিছু আলাদা করি তখন আমি রিয়েল টাইম ট্রান্সকোড করি:
ffmpeg -y -hide_banner `
-thread_queue_size 9999 -indexmem 9999 -f dshow -rtbufsize 2147.48M -i audio="Analog (1+2) (RME Fireface UC)" `
-thread_queue_size 9999 -indexmem 9999 -f dshow -rtbufsize 2147.48M -i audio="ADAT (5+6) (RME Fireface UC)" `
-thread_queue_size 9999 -indexmem 9999 -r 25 -f lavfi -rtbufsize 2147.48M -i color=c=black:s=256x120 `
-thread_queue_size 9999 -indexmem 9999 -f dshow -rtbufsize 2147.48M -video_size 1920x1080 -framerate 60 `
-pixel_format yuv420p -i video="Game Capture HD60 Pro (Video) (#01)":audio="Game Capture HD60 Pro (Audio) (#01)" `
-thread_queue_size 9999 -indexmem 9999 -f dshow -rtbufsize 2147.48M -video_size 3840x2160 -framerate 60 `
-pixel_format nv12 -i video="Video (Pro Capture)":audio="ADAT (3+4) (RME Fireface UC)" `
-thread_queue_size 9999 -indexmem 9999 -f dshow -rtbufsize 2147.48M -video_size 3840x2160 -framerate 60 `
-pixel_format nv12 -i video="AVerMedia HD Capture GC573 1":audio="Analog (1+2) (RME Fireface UC)" `
-map 2,0 -map 0 -c:v h264_nvenc -preset: llhp -r 25 -rc-lookahead 25 -pix_fmt nv12 -b:v 288M -minrate 288M `
-maxrate 288M -bufsize 288M -c:a aac -ar 44100 -b:a 384k -vsync 1 -max_muxing_queue_size 9999 `
-f segment -segment_time 600 -segment_wrap 9 -reset_timestamps 1 -segment_format_options max_delay=0 `
C:\Users\djcim\Videos\FFmpeg\CP\CP%02d.ts `
-map 2,1 -map 1 -c:v h264_nvenc -preset: llhp -r 25 -rc-lookahead 25 -pix_fmt nv12 -b:v 288M -minrate 288M `
-maxrate 288M -bufsize 288M -c:a aac -ar 44100 -b:a 384k -vsync 1 -max_muxing_queue_size 9999 `
-f segment -segment_time 600 -segment_wrap 9 -reset_timestamps 1 -segment_format_options max_delay=0 `
C:\Users\djcim\Videos\FFmpeg\SB\SB%02d.ts `
-map 3:0,3:1 -map 3:1 -c:v h264_nvenc -preset: llhp -r 60 -rc-lookahead 60 -pix_fmt yuv420p -b:v 288M -minrate 288M `
-maxrate 288M -bufsize 288M -c:a aac -ar 44100 -b:a 384k -vsync 1 -max_muxing_queue_size 9999 `
-f segment -segment_time 600 -segment_wrap 9 -reset_timestamps 1 -segment_format_options max_delay=0 `
C:\Users\djcim\Videos\FFmpeg\EL\EL%02d.ts `
-map 4:0,4:1 -map 4:1 -c:v h264_nvenc -preset: llhp -r 60 -rc-lookahead 60 -pix_fmt nv12 -b:v 288M -minrate 288M `
-maxrate 288M -bufsize 288M -c:a aac -ar 44100 -b:a 384k -vsync 1 -max_muxing_queue_size 9999 `
-f segment -segment_time 600 -segment_wrap 9 -reset_timestamps 1 -segment_format_options max_delay=0 `
C:\Users\djcim\Videos\FFmpeg\MW\MW%02d.ts `
-map 5:0,5:1 -map 5:1 -c:v h264_nvenc -preset: llhp -r 60 -rc-lookahead 60 -pix_fmt nv12 -b:v 288M -minrate 288M `
-maxrate 288M -bufsize 288M -c:a aac -ar 44100 -b:a 192k -vsync 1 -max_muxing_queue_size 9999 `
-f segment -segment_time 600 -segment_wrap 9 -reset_timestamps 1 -segment_format_options max_delay=0 `
C:\Users\djcim\Videos\FFmpeg\AM\AM%02d.ts
এটি উল্লেখ করারও দরকার নেই যে উপরের কমান্ডটি আমি যা ব্যবহার করি তার অনেক বেশি সরল সংস্করণ, আমি সাধারণত প্রতিটি আউটপুটে সিঙ্ক্রোনাইজেশন অপশনগুলির একটি অগণিত সংযোজন যুক্ত করি তবে এটি সত্যিকারের ট্রান্সকোড করার ক্ষমতার সাথে সত্যই প্রাসঙ্গিক নয়।
কোনও একক সমাধান কেন একক ফাইলের সমাধানের সাথে লড়াই করে যখন এর পরে না হয়? এবং যদি সম্ভব হয়, একটি সমাধান?