موبائل ڈیولپمنٹ میں ٹرانسکوڈنگ — یہ کیا ہے، کام کرنے کا اصول اور استعمال کے منظرنامے

مصنف: IT Sectr اشاعت: 2026-05-25 مطالعے کا وقت: 10 منٹ

ٹرانسکوڈنگ ایک ڈیجیٹل میڈیا فائل کو ایک کمپریشن فارمیٹ سے دوسرے میں مکمل ڈی کوڈنگ اور دوبارہ انکوڈنگ کے ساتھ تبدیل کرنے کا عمل ہے۔ ٹرانسملٹی پلیکسنگ (صرف کنٹینر تبدیل کرنا) کے برعکس، ٹرانسکوڈنگ کوڈیک، بٹ ریٹ، ریزولوشن اور کمپریسڈ سٹریم کے دیگر پیرامیٹرز کو تبدیل کرتی ہے۔ Apple AVFoundation documentation (2026) کے مطابق، ٹرانسکوڈنگ مختلف آلات اور نیٹ ورک کی شرائط کے مطابق مواد کو ڈھالنے کے لیے استعمال ہوتی ہے۔

اہم نکات

  • ٹرانسکوڈنگ ماخذ سٹریم کا غیر کمپریسڈ PCM میں مکمل ڈی کوڈنگ اور پھر نئے فارمیٹ میں انکوڈنگ ہے
  • ٹرانسملٹی پلیکسنگ سٹریم کو دوبارہ انکوڈ کیے بغیر صرف کنٹینر تبدیل کرتی ہے — یہ ٹرانسکوڈنگ نہیں ہے
  • ٹرانسکوڈنگ کی اہم وجوہات: کوڈیک تبدیلی، بٹ ریٹ میں کمی، ریزولوشن تبدیلی، DRM موافقت
  • ٹولز: FFmpeg، AVFoundation (iOS)، MediaCodec (Android)، AWS Elemental MediaConvert
  • موبائل آلات پر ریئل ٹائم ٹرانسکوڈنگ کے لیے ہارڈویئر انکوڈر ایکسلریشن کی ضرورت ہوتی ہے

ٹرانسکوڈنگ کیا ہے؟

ٹرانسکوڈنگ میڈیا فائل کو ایک کمپریشن فارمیٹ سے دوسرے میں تبدیل کرنے کا عمل ہے، جس میں ماخذ سٹریم کو مکمل طور پر ایک انٹرمیڈیٹ غیر کمپریسڈ PCM فارمیٹ میں ڈی کوڈ کیا جاتا ہے اور پھر نئے پیرامیٹرز کے ساتھ انکوڈ کیا جاتا ہے۔ اگر ماخذ فائل 10 Mbps بٹ ریٹ کے ساتھ H.264 کوڈیک استعمال کرتی ہے اور آؤٹ پٹ کو 3 Mbps بٹ ریٹ کے ساتھ H.265 کی ضرورت ہے — یہ ٹرانسکوڈنگ ہے۔

ٹرانسکوڈنگ سادہ ری پیکیجنگ (ٹرانسملٹی پلیکسنگ) سے مختلف ہے، جہاں صرف کنٹینر تبدیل ہوتا ہے (مثلاً MP4 سے MKV) جبکہ کمپریسڈ بٹ سٹریم غیر تبدیل شدہ رہتی ہے۔ ٹرانسکوڈنگ میں حسابی طور پر مہنگے آپریشنز شامل ہیں: ہر فریم کو ڈی کوڈ کرنا، فلٹرز لگانا (اسکیلنگ، رنگ درستی، کراپنگ)، اور نئے پیرامیٹرز کے ساتھ دوبارہ انکوڈنگ کرنا۔ یہ ٹرانسکوڈنگ کو میڈیا کے ساتھ کام کرتے وقت سب سے زیادہ وسائل استعمال کرنے والے آپریشنز میں سے ایک بناتا ہے۔

ٹرانسکوڈنگ مختلف کاموں میں استعمال ہوتی ہے: ویڈیو کو بینڈوتھ کی حدود کے مطابق ڈھالنا، ہدف آلہ پر ہارڈویئر ڈی کوڈنگ سپورٹ والے فارمیٹ میں تبدیل کرنا، HLS/DASH سٹریمنگ کے لیے متعدد ورژن بنانا، آڈیو ٹریکس کو علیحدہ فائل میں نکالنا۔ OTT سروسز (Netflix، YouTube، Twitch) اپ لوڈ کردہ ہر فائل کو مختلف بٹ ریٹ، ریزولوشن اور کوڈیک والے درجنوں ویرینٹ میں ٹرانسکوڈ کرتی ہیں تاکہ لاکھوں صارفین کو ایڈاپٹیو سٹریمنگ فراہم کی جا سکے۔

ٹرانسکوڈنگ کیسے کام کرتی ہے؟

ٹرانسکوڈنگ کا عمل تین اہم مراحل پر مشتمل ہے: ڈی کوڈنگ، پروسیسنگ اور انکوڈنگ۔ ہر مرحلہ دستیابی اور مطلوبہ کارکردگی کے لحاظ سے CPU یا GPU/ہارڈویئر بلاکس پر انجام دیا جا سکتا ہے۔

ٹرانسکوڈنگ کے مراحل

پہلا مرحلہ ماخذ سٹریم کی ڈی کوڈنگ ہے۔ ماخذ فائل کنٹینر (MP4، MOV، MKV) سے پڑھی جاتی ہے، جس کے بعد کمپریسڈ ویڈیو پیکٹ ڈی کوڈر کو بھیجے جاتے ہیں۔ ڈی کوڈنگ ہارڈویئر پر مبنی (اگر کوڈیک معاون ہے) یا FFmpeg کے ذریعے سافٹ ویئر پر مبنی ہو سکتی ہے۔ ڈی کوڈنگ کا آؤٹ پٹ YUV420 یا BGRA فارمیٹ میں غیر کمپریسڈ فریم ہوتے ہیں — یہ وہ مرحلہ ہے جہاں ٹرانسکوڈنگ سادہ ریملٹی پلیکسنگ سے مختلف ہوتی ہے۔

دوسرا مرحلہ فلٹرنگ اور پروسیسنگ ہے۔ ڈی کوڈ شدہ فریم فلٹرز کی ایک زنجیر سے گزرتے ہیں: ہدف ریزولوشن پر اسکیلنگ، فریم ریٹ تبدیل کرنا، رنگ درستی، متن یا گرافکس اوورلے کرنا۔ FFmpeg فلٹر زنجیر ایک گراف کے طور پر بنائی جاتی ہے جہاں ہر فلٹر ایک علیحدہ پروسیسنگ ماڈیول ہے۔ مثال کے طور پر، scale=1280:720 فلٹر ریزولوشن تبدیل کرتا ہے، fps=30 فریم ریٹ تبدیل کرتا ہے، اور yadif ڈی انٹرلیسنگ کرتا ہے۔ تمام آپریشنز غیر کمپریسڈ فریم پر کیے جاتے ہیں، جس سے دوسرا مرحلہ سب سے زیادہ وسائل استعمال کرنے والا بنتا ہے۔

تیسرا مرحلہ ہدف فارمیٹ میں انکوڈنگ ہے۔ پروسیس شدہ فریم انکوڈر کو بھیجے جاتے ہیں، جو انہیں ہدف کوڈیک الگورتھم کے مطابق کمپریس کرتا ہے۔ انکوڈر ہارڈویئر پر مبنی (iOS پر VideoToolbox، Android پر MediaCodec) یا سافٹ ویئر پر مبنی (libx264، libx265) ہو سکتا ہے۔ انکوڈنگ پیرامیٹرز: مستقل معیار کے لیے CRF (Constant Rate Factor)، CBR/VBR کے لیے بٹ ریٹ، ہدف آلات کے ساتھ مطابقت کے لیے پروفائل اور لیول۔

cpp
// FFmpeg پر ٹرانسکوڈنگ پائپ لائن ڈایاگرام
AVFormatContext *inputCtx, *outputCtx;
AVCodecContext *decoderCtx, *encoderCtx;
AVFrame *frame = av_frame_alloc();
AVPacket packet;

while (av_read_frame(inputCtx, &packet) >= 0) {
    // 1. ڈی کوڈ کریں
    avcodec_send_packet(decoderCtx, &packet);
    avcodec_receive_frame(decoderCtx, frame);
    
    // 2. فلٹر کریں (اسکیل + fps تبدیلی)
    sws_scale(swsCtx, frame->data, frame->linesize,
              0, frame->height, scaledFrame->data,
              scaledFrame->linesize);
    
    // 3. انکوڈ کریں
    avcodec_send_frame(encoderCtx, scaledFrame);
    avcodec_receive_packet(encoderCtx, &outPacket);
    av_interleaved_write_frame(outputCtx, &outPacket);
}

مذکورہ پائپ لائن کلاسک ٹرانسکوڈنگ سائیکل کو ظاہر کرتی ہے۔ av_read_frame فنکشن ان پٹ فائل سے کمپریسڈ پیکٹ پڑھتا ہے، avcodec_send_packet انہیں فریم میں ڈی کوڈ کرتا ہے، sws_scale اسکیلنگ کرتا ہے، اور avcodec_send_frame پروسیس شدہ فریم کو آؤٹ پٹ فارمیٹ میں انکوڈ کرتا ہے۔ یہ تین مرحلوں کا سائیکل انکوڈر سیٹنگز کے مطابق ہر فریم یا فریم گروپ (GOP) کے لیے دہرایا جاتا ہے۔

ٹرانسکوڈنگ بمقابلہ ٹرانسملٹی پلیکسنگ

ٹرانسکوڈنگ اور ٹرانسملٹی پلیکسنگ کے درمیان فرق میڈیا انجینئرنگ میں الجھن کے سب سے عام نکات میں سے ایک ہے۔ اس فرق کو سمجھنا صحیح میڈیا پروسیسنگ حکمت عملی کے انتخاب کے لیے اہم ہے۔

پیرامیٹرٹرانسکوڈنگٹرانسملٹی پلیکسنگ
کیا تبدیل ہوتا ہےکوڈیک، بٹ ریٹ، ریزولوشنکنٹینر، میٹا ڈیٹا
حسابی بوجھزیادہ (ڈی کوڈنگ + انکوڈنگ)کم سے کم (پیکٹ کاپی)
معیارخراب ہو سکتا ہے (نسلی نقصان)بغیر نقصان
عملدرآمد کا وقتلمبی ویڈیو کے لیے منٹ–گھنٹےسیکنڈ–منٹ
استعمالفارمیٹ موافقت، کمپریشنمطابقت کے لیے کنٹینر تبدیلی

ٹرانسملٹی پلیکسنگ ڈی کوڈنگ اور دوبارہ انکوڈنگ کے بغیر ایک کمپریسڈ سٹریم کو دوسرے کنٹینر میں ری پیکیج کرنا ہے۔ اگر ویڈیو پہلے سے MP4 کنٹینر میں H.265 کوڈیک کے ساتھ کمپریسڈ ہے اور اسے MOV یا MKV کنٹینر میں رکھنے کی ضرورت ہے — ٹرانسملٹی پلیکسنگ صرف بٹ سٹریم پیکٹ کو ایک کنٹینر سے دوسرے میں کاپی کرتی ہے۔ معیار متاثر نہیں ہوتا، پروسیسنگ کا وقت کم سے کم ہوتا ہے کیونکہ فریم ڈی کوڈنگ کی ضرورت نہیں ہوتی۔ FFmpeg -codec copy پرچم کے ساتھ ٹرانسملٹی پلیکسنگ کرتا ہے۔

ٹرانسکوڈنگ دوسری طرف، میڈیا سٹریم کو مکمل طور پر ڈی کوڈ اور دوبارہ کمپریس کرتی ہے۔ جب بھی ویڈیو ٹرانسکوڈنگ سے گزرتی ہے، نسلی نقصان (generation loss) ہو سکتا ہے — بار بار لوسی کمپریشن کی وجہ سے معیار میں معمولی کمی۔ اسی بٹ ریٹ پر بھی، ٹرانسکوڈنگ کی تیسری نسل عام طور پر پہلی سے بدتر ہوتی ہے۔ یہی وجہ ہے کہ پیشہ ور افراد ماسٹر کاپیوں کو غیر کمپریسڈ یا کم سے کم کمپریسڈ فارمیٹس (ProRes، DNxHR) میں ذخیرہ کرنے اور صرف تقسیم کے لیے حتمی ورژن ٹرانسکوڈ کرنے کی تجویز دیتے ہیں۔

ٹرانسکوڈنگ ٹولز

ٹرانسکوڈنگ ٹول کا انتخاب پلیٹ فارم، کارکردگی کی ضروریات اور استعمال کے معاملے پر منحصر ہے۔ موبائل ڈیولپمنٹ کے لیے مقامی API اور کراس پلیٹ فارم لائبریریاں دونوں دستیاب ہیں۔

FFmpeg — عالمی ٹول

FFmpeg تمام پلیٹ فارمز پر ٹرانسکوڈنگ کا ڈی فیکٹو معیار ہے۔ FFmpeg کمانڈ لائن تقریباً کسی بھی تبدیلی کی اجازت دیتی ہے: کوڈیک تبدیلی، بٹ ریٹ ایڈجسٹمنٹ، تراشنا، جوڑنا، فلٹر لگانا۔ موبائل ایپلیکیشنز کے لیے، FFmpeg libavformat، libavcodec اور libavfilter لائبریریوں کے ذریعے مربوط کیا جاتا ہے۔ ایک عام ٹرانسکوڈنگ کمانڈ کی مثال: ffmpeg -i input.mp4 -c:v libx265 -crf 23 -c:a aac -b:a 128k output.mp4۔

پلیٹ فارم API

iOS پر، ٹرانسکوڈنگ AVAssetWriter اور AVAssetReader کے ذریعے کی جاتی ہے۔ AVAssetReader غیر کمپریسڈ فریم پڑھ کر ماخذ فائل کو ڈی کوڈ کرتا ہے، اور AVAssetWriter انہیں ہدف فارمیٹ میں انکوڈ کرتا ہے۔ یہ نقطہ نظر خود بخود VideoToolbox ہارڈویئر انکوڈرز استعمال کرتا ہے، زیادہ سے زیادہ کارکردگی کو یقینی بناتا ہے۔ Android پر، اسی طرح کی فعالیت MediaCodec کے ذریعے MediaExtractor اور MediaMuxer کے ساتھ دستیاب ہے — MediaExtractor کمپریسڈ پیکٹ نکالتا ہے، MediaCodec ڈی کوڈ اور انکوڈ کرتا ہے، MediaMuxer نتیجہ لکھتا ہے۔

کلاؤڈ سروسز

پروڈکشن ماحول میں سرور سائیڈ ٹرانسکوڈنگ کے لیے کلاؤڈ سروسز استعمال کی جاتی ہیں: AWS Elemental MediaConvert، Azure Media Services، Google Transcoder API۔ یہ سروسز لوڈ کے تحت خود بخود پیمانہ کرتی ہیں، تمام مقبول فارمیٹس کو سپورٹ کرتی ہیں، اور ایڈاپٹیو سٹریمنگ (HLS, DASH) کے لیے ایک ان پٹ فائل کو درجنوں آؤٹ پٹ ویرینٹ میں ٹرانسکوڈ کر سکتی ہیں۔ موبائل ایپلیکیشنز کے لیے، کلاؤڈ ٹرانسکوڈنگ بہترین حل ہے کیونکہ یہ صارف کے آلے پر بوجھ نہیں ڈالتی اور غیر مطابقت پذیر مواد کی تیاری کی اجازت دیتی ہے۔

ٹرانسکوڈنگ کوڈ کی مثالیں

آئیے ہارڈویئر ایکسلریشن اور کلیدی معیار کے پیرامیٹرز کی تشکیل کا استعمال کرتے ہوئے موبائل پلیٹ فارمز پر عملی ٹرانسکوڈنگ کی مثالیں دیکھتے ہیں۔

iOS پر H.264 سے H.265 ٹرانسکوڈنگ

swift
import AVFoundation

func transcodeVideo(sourceURL: URL, destURL: URL) {
    let asset = AVAsset(url: sourceURL)
    let preset = AVAssetExportPresetHEVCHighestQuality
    
    AVAssetExportSession(asset: asset, presetName: preset)?
        .exportAsynchronously {
            switch assetExportSession?.status {
            case .completed:
                print("ٹرانسکوڈنگ مکمل")
            case .failed:
                print("خرابی: " + assetExportSession.error.localizedDescription)
            default:
                break
            }
        }
    
    // AVAssetReader + AVAssetWriter کے ساتھ دستی ٹرانسکوڈنگ
    let reader = try AVAssetReader(asset: asset)
    let writer = try AVAssetWriter(url: destURL,
        fileType: .mp4)
    
    let outputSettings: [String: Any] = [
        AVVideoCodecKey: AVVideoCodecType.hevc,
        AVVideoWidthKey: 1920,
        AVVideoHeightKey: 1080,
        AVVideoCompressionPropertiesKey: [
            AVVideoAverageBitRateKey: 4_000_000,
            AVVideoProfileLevelKey: AVVideoProfileLevelH265Main10
        ]
    ]
    
    let adaptor = AVAssetWriterInput(
        mediaType: .video,
        outputSettings: outputSettings
    )
    writer.add(adaptor)
}

مثال iOS پر ٹرانسکوڈنگ کے دو طریقے دکھاتی ہے۔ AVAssetExportSession معیار کے پیش سیٹ (H.265 کے لیے HEVCHighestQuality) کے ساتھ ایک آسان طریقہ ہے۔ AVAssetReader + AVAssetWriter کے ذریعے دستی پائپ لائن پیرامیٹرز (بٹ ریٹ، پروفائل، لیول) پر مکمل کنٹرول فراہم کرتی ہے۔ AVVideoProfileLevelH265Main10 پیرامیٹر 10 بٹ رنگ گہرائی کے ساتھ HDR پروفائل Main10 کو فعال کرتا ہے، جو جدید HDR مواد کے لیے اہم ہے۔

Android پر MediaCodec کے ساتھ ٹرانسکوڈنگ

kotlin
class Transcoder(private val context: Context) {
    
    fun transcodeToHevc(inputUri: Uri, outputFile: File) {
        val extractor = MediaExtractor()
        extractor.setDataSource(context, inputUri, null)
        
        val trackFormat = extractor.getTrackFormat(videoTrackIndex)
        val mime = trackFormat.getString(MediaFormat.KEY_MIME)
        
        val decoder = MediaCodec.createDecoderByType(mime!!)
        val encoder = MediaCodec.createEncoderByType(MediaFormat.MIMETYPE_VIDEO_HEVC)
        
        val outputFormat = MediaFormat.createVideoFormat(
            MediaFormat.MIMETYPE_VIDEO_HEVC, 1920, 1080
        ).apply {
            setInteger(MediaFormat.KEY_BIT_RATE, 4_000_000)
            setInteger(MediaFormat.KEY_FRAME_RATE, 30)
            setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 2)
        }
        
        encoder.configure(outputFormat, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE)
        encoder.start()
    }
}

Android کوڈ MediaExtractor — MediaCodec ڈی کوڈر — MediaCodec انکوڈر — MediaMuxer کی پائپ لائن بناتا ہے۔ MediaExtractor ان پٹ فائل سے کوڈیک کی قسم کا تعین کرتا ہے اور متعلقہ ڈی کوڈر منتخب کرتا ہے۔ انکوڈر H.265 (HEVC) کے لیے 4 Mbps بٹ ریٹ اور 2 سیکنڈ کی فریم کے وقفے کے ساتھ تشکیل دیا گیا ہے، جو سٹریمنگ کے لیے بہترین ہے۔ اہم: MediaCodec انکوڈر ہم آہنگی سے کام کرتا ہے، لہذا ریئل ٹائم ٹرانسکوڈنگ کے لیے ہر فریم کی درست PTS ٹائم سٹیمپ ہینڈلنگ کے ساتھ ایک لوپ نافذ کیا جانا چاہیے۔

موبائل آلات کے لیے ٹرانسکوڈنگ کی اصلاح

موبائل آلات پر ٹرانسکوڈنگ ایک ایسا کام ہے جس میں محدود CPU، GPU وسائل اور تھرمل رکاوٹوں کی وجہ سے احتیاط سے اصلاح کی ضرورت ہوتی ہے۔ کئی حکمت عملیاں موثر طریقے سے ٹرانسکوڈنگ کرنے میں مدد کرتی ہیں۔

ہارڈویئر انکوڈنگ کا استعمال

کلیدی کارکردگی کا عنصر ہارڈویئر انکوڈر ہے۔ iOS پر، VideoToolbox سافٹ ویئر libx264 سے 5–10 گنا تیز ہارڈویئر H.264 اور H.265 انکوڈنگ فراہم کرتا ہے۔ Android پر، MediaCodec اگر دستیاب ہو تو ہارڈویئر OMX اجزاء استعمال کرتا ہے۔ ہارڈویئر انکوڈنگ کو فعال کرنے سے فلیگ شپ آلہ پر 10 منٹ کی ویڈیو کا ٹرانسکوڈنگ وقت 30–40 منٹ (سافٹ ویئر) سے کم ہو کر 3–5 منٹ (ہارڈویئر) ہو جاتا ہے۔

معیار کے پیرامیٹرز کا انتخاب

موبائل ٹرانسکوڈنگ کے لیے معیار، حجم اور پروسیسنگ کے وقت کے درمیان توازن اہم ہے۔ موبائل آلات پر H.265 کے لیے، 30 FPS پر 1080p ویڈیو کے لیے 4–8 Mbps بٹ ریٹ تجویز کیا جاتا ہے۔ libx265 میں CRF موڈ (Constant Rate Factor) معیار کو براہ راست سیٹ کرنے کی اجازت دیتا ہے، جہاں 23–28 معتدل فائل سائز پر اچھا بصری معیار فراہم کرتا ہے۔ ہارڈویئر انکوڈرز کے لیے، ہدف بٹ ریٹ کے ساتھ CBR موڈ استعمال کریں کیونکہ CRF ہارڈویئر میں تعاون یافتہ نہیں ہے۔

تھرمل مینجمنٹ

موبائل آلہ پر مسلسل ٹرانسکوڈنگ نمایاں حرارت کا سبب بنتی ہے۔ 4K ویڈیو کی 5–7 منٹ کی شدید انکوڈنگ کے بعد، پروسیسر کا درجہ حرارت 50–55 ڈگری تک پہنچ سکتا ہے، جس کے بعد تھروٹلنگ شروع ہو جاتی ہے۔ حل وقفوں کے ساتھ ٹرانسکوڈنگ کرنا یا فریم ریٹ کو 30 FPS تک کم کرنا ہے۔ اگر ایپلیکیشن کو بیچ ٹرانسکوڈنگ کی ضرورت ہے (مثلاً ویڈیو ایڈیٹر)، تو کولنگ وقفوں کے ساتھ 2–3 منٹ کے بیچ میں پروسیس کرنا بہتر ہے۔ پروڈکشن منظرناموں کے لیے، ٹرانسکوڈنگ کو سرور سائیڈ پر منتقل کرنا اور کلاؤڈ سروسز استعمال کرنا بہترین ہے۔

اکثر پوچھے گئے سوالات

ٹرانسکوڈنگ انکوڈنگ سے کیسے مختلف ہے؟

انکوڈنگ خام غیر کمپریسڈ ڈیٹا کو ہدف کوڈیک میں کمپریس کرنا ہے۔ ٹرانسکوڈنگ میں ڈی کوڈنگ اور انکوڈنگ دونوں شامل ہیں: یہ پہلے موجودہ کمپریسڈ سٹریم کو ڈی کوڈ کرتی ہے، پھر اسے دوبارہ انکوڈ کرتی ہے۔ سادہ انکوڈنگ ان پٹ کے طور پر غیر کمپریسڈ ڈیٹا لیتی ہے (مثلاً کیمرے سے)، جبکہ ٹرانسکوڈنگ پہلے سے کمپریسڈ فائل لیتی ہے۔

موبائل پر ٹرانسکوڈنگ کے لیے کون سا کوڈیک منتخب کریں؟

زیادہ سے زیادہ مطابقت کے لیے — H.264۔ بہتر کمپریشن کے لیے — H.265 (HEVC)۔ اگر آلہ ہارڈویئر H.265 انکوڈنگ کو سپورٹ کرتا ہے (iPhone 8+، Snapdragon 845+ والا Android)، تو یہ اسی معیار پر آدھا فائل سائز فراہم کرتا ہے۔ AV1 انکوڈنگ موبائل آلات پر ہارڈویئر ایکسلریشن کے ساتھ بھی ابھی بہت سست ہے۔

“بغیر نقصان ٹرانسکوڈنگ” کیا ہے؟

سخت الفاظ میں، لوسی کوڈیک کے درمیان سوئچ کرتے وقت بغیر نقصان ٹرانسکوڈنگ ناممکن ہے۔ اگر دونوں کوڈیک لوسی ہیں، تو ٹرانسکوڈنگ کی ہر نسل معیار کو خراب کرتی ہے۔ بغیر نقصان ٹرانسکوڈنگ صرف بغیر نقصان فارمیٹس (FFV1, H.264 Lossless) کے درمیان یا دوبارہ انکوڈنگ کے بغیر کنٹینر تبدیل کرنے (ٹرانسملٹی پلیکسنگ) پر ممکن ہے۔

کیا ویڈیو کو ریئل ٹائم میں ٹرانسکوڈ کیا جا سکتا ہے؟

ہاں، اگر ہارڈویئر ڈی کوڈر اور انکوڈر استعمال کیے جائیں اور ہدف ریزولوشن 1080p سے زیادہ نہ ہو۔ VideoToolbox (iOS) یا MediaCodec (Android) والے آلات پر، ریئل ٹائم H.264→H.265 ٹرانسکوڈنگ 1–3 سیکنڈ کی تاخیر سے ممکن ہے۔ 4K ریئل ٹائم کے لیے Apple A17 Pro، Snapdragon 8 Gen 2 یا اس سے اوپر جیسے طاقتور SoC کی ضرورت ہے۔

ٹرانسکوڈنگ کے بعد ویڈیو کا معیار کیوں خراب ہوا؟

لوسی ٹرانسکوڈنگ کمپریشن آرٹفیکٹس جمع کرتی ہے۔ اگر ماخذ فائل پہلے سے بہت زیادہ کمپریسڈ تھی (1080p کے لیے 2–3 Mbps بٹ ریٹ)، دوبارہ کمپریشن نقصان کو دگنا کر دیتا ہے۔ سفارش ہے کہ صرف زیادہ بٹ ریٹ (20+ Mbps) والی ماسٹر کاپیوں سے ٹرانسکوڈ کریں اور کم سے کم نقصان کے لیے CRF 18–23 استعمال کریں۔

خلاصہ

  • ٹرانسکوڈنگ کوڈیک، بٹ ریٹ یا ریزولوشن تبدیل کرنے کے لیے میڈیا کی ڈی کوڈنگ + انکوڈنگ کا مکمل سائیکل ہے
  • ٹرانسملٹی پلیکسنگ دوبارہ انکوڈنگ کے بغیر صرف کنٹینر تبدیل کرتی ہے — یہ ٹرانسکوڈنگ نہیں ہے
  • ہارڈویئر ٹرانسکوڈنگ VideoToolbox اور MediaCodec پر سافٹ ویئر سے 5–10 گنا تیز ہے
  • FFmpeg ایک عالمی ٹول ہے جو سینکڑوں کوڈیک اور پروسیسنگ فلٹرز کو سپورٹ کرتا ہے
  • لوسی ٹرانسکوڈنگ کی ہر نسل معیار خراب کرتی ہے — ماسٹر کاپیاں استعمال کریں
  • موبائل H.265 کے لیے بہترین پیرامیٹرز: بٹ ریٹ 4–8 Mbps, Main10 پروفائل, GOP 2 سیکنڈ
  • پروڈکشن کے لیے کلاؤڈ ٹرانسکوڈنگ سروسز (AWS Elemental, Azure Media) استعمال کریں — یہ آلے پر بوجھ نہیں ڈالتیں

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں