আমার কাছে একটি ভিডিও আছে যা আমি ইউটিউবে এফএফএমপিগ ব্যবহার করে লাইভ স্ট্রিম করতে চাই। ভিডিওটির কোনও অডিও নেই, বরং ব্যস্ত ভিজ্যুয়াল রয়েছে (প্রচুর দ্রুত রঙ পরিবর্তন করছে)। আমি 720p এ স্ট্রিম করার চেষ্টা করছি, তবে যখনই আমি লাইভ স্ট্রিমটি দেখি, এটি মসৃণ হয় না। প্রচুর তোলাবাজি এবং বাফারিং রয়েছে। যাইহোক, লাইভ স্ট্রিমটি শেষ হয়ে যাওয়ার পরে এবং আমি আর-লাইভ-লাইভ ভিডিও দেখি না, সমস্ত ফ্রেম উপস্থিত এবং মসৃণ হয়।
এটি প্রাথমিকভাবে আমাকে ভাবতে পেরেছিল যে আমার কাছে সরাসরি লাইভ স্ট্রিমিং দেখার সমস্যা রয়েছে তবে অন্যান্য 720p বা উচ্চতর স্ট্রিমগুলি দেখতে আমার কোনও অসুবিধা নেই। তদ্ব্যতীত, আমার ভিডিওর জটিল অংশগুলি স্ট্রিম করার সময় ffmpeg "সময় = ..." ধীর হয়ে যায়, বিটরেট অঙ্কুরিত হয়, এবং fpsও হ্রাস পায়।
এটি আমার বিশ্বাস করতে বাধ্য করে যে সমস্যাটি আমি ffmpeg কমান্ডের সাথে প্রেরণে ব্যবহার করছি। যখন আমি একই কমান্ডটি একটি সহজ ভিডিও (একটি কালো ফ্রেমযুক্ত সাদা) প্রেরণে ব্যবহার করি তখন আমার কোনও সমস্যা নেই।
এখানে আমার ffmpeg স্ক্রিপ্ট:
INPUT=""
# Read input as native framerate
INPUT="$INPUT -re"
# Input file
INPUT="$INPUT -i input.flv"
AUDIO=""
# Read input as native framerate
AUDIO="$AUDIO -re"
# Audio codec (lavfi is better for bandwidth?)
AUDIO="$AUDIO -f lavfi"
# Input (dummy)
AUDIO="$AUDIO -i aevalsrc=0"
OUTPUT=""
# Video codec
OUTPUT="$OUTPUT -c:v libx264"
# Video resolution
OUTPUT="$OUTPUT -video_size 1280x720"
# Pixel format
#OUTPUT="$OUTPUT -pix_fmt yuv420p"
# Attempt to force bitrate at 1500k
OUTPUT="$OUTPUT -minrate 150k -maxrate 150k -b:v 150k"
# frames per second
OUTPUT="$OUTPUT -r 25"
# Audio codec
OUTPUT="$OUTPUT -c:a libvo_aacenc"
# GOP size (calculates intraframes)
OUTPUT="$OUTPUT -g 30"
# Format
OUTPUT="$OUTPUT -f flv"
# Allow use of "experimental" encoders
OUTPUT="$OUTPUT -strict experimental"
# Testing
OUTPUT="$OUTPUT rtmp://a.rtmp.youtube.com/live2/xxx"
বাফারিং ছাড়াই এই ধরণের ভিডিও প্রেরণে কি ffmpeg ব্যবহার করা সম্ভব?