PDA

View Full Version : سوال: پخش يك فايل avi از داخل يك فايل zip بدون extract‌شدن



دنیای دلفی
شنبه 01 آذر 1393, 08:31 صبح
سلام به كليه دوستان

به نظر شما مي شه يك فايل تصويري يا يك عكس رو كه درون يك فايل Zip است رو بدون اينكه در Temp باز بشه اجرا كرد و مشاهده.

ظاهرا شركت شتاب چند رسانه ساز كه در بخش امنيت نرم افزار كار مي كنه از همچين تكنيكي استفاده مي كنه.
آيا اين كار امكان پذير است.
اگر كسي تجربه اي در اين بخش داره ممنون مي شم راهنماي كنه.

كارهاي انجام شده :
تونستم يه فايل زيپ رو با هر حجمي با برنامه نويسي ايجاد كنم و با سرعت بسيار بالا بازش كنم و فايلهاي داخلش رو اجرا كنم ولي اول Extract‌ مي شن. كه اين مشكله

rahnema1
شنبه 01 آذر 1393, 10:59 صبح
سلام
پروژه re7zip فکر کنم به درد کار شما می خوره البته به زبان جاوا تهیه شده. کارش هم اینه که میتونه محتویات یک فایل زیپ، سون زیپ و ... را که در یک آدرس اینترنت قرار داره بدون اکسترکت کردن دانلود کنه

دنیای دلفی
شنبه 01 آذر 1393, 11:19 صبح
ممنون
ولي داره دانلود مي كنه پس داره ديتا رو از Zip خارج مي كنه . باز هم مي شه Extract كردن بخشي از ديتاها. اينجا منظور اجرا هست بدون باز شدن در Temp مثل اجراي يك فيلم از داخل يك پوشه .

باز هم ممنون از وقتي كه گذاشتين

یوسف زالی
شنبه 01 آذر 1393, 11:19 صبح
فکر می کنم شدنی باشه. مشروط به این که سیستم کدگذاری، فایل ها رو جدا جدا هدردهی کرده باشه. با پیدا کردن هدر مربوطه، می تونید نقطه شروع استریم و پایان اون رو برای فایل مورد نظر در فایل زیپ پیدا کرده و روی مموری استریم اکسترکت کنید، بعد هر کار دوست داشته باشید باهاش کنید، مثلا اون رو play کنید. در نظر بگیرید که بالاخره باید یک جایی این اکسترکت اتفاق بیفته، یا روی مموری یا روی دیسک و کرکر ها با یک دامپ فایل رو می تونن بردارن، مگه این که بصورت مرحله به مرحله مثلا فایل های 1 مگی تولید کنید و بعد از نمایش دادنش اون رو از حافظه پاک کنید.
http://wotsit.org/list.asp?al=Z

دنیای دلفی
شنبه 01 آذر 1393, 11:45 صبح
اينجا يه مشكل پيش مي ياد مثلا فايل تصوير ما 4 گيگ كه باشه مثلا با فرض حافظه مطلوب موجود ابتدا مي بايست مدت زمان زيادي منتظر بماند كاربر تا ديتا ها در حافظه اكستركت شوند و بعد مثلا پلير اقدام به پخش كند . بايد دنبال راهي بود كه با فايل Zip مثل يك Folder برخورد شود تا نياز به Extract چه در حافظه استريم يا هارد ديسك نباشد. البته اين نكته رو مي دونم كه بايد موقع ذخيره سازي داده ها در فايل Zip سيستم فشرده سازي رو غيرفعال كنيم . تا فقط يك نوع Pakage ساخته شود بدون فشرده كردن مثل برنامه Winrar كه در بخش نوع فشرده سازي داره گزينه Store هست كه فقط داده ها رو ذخيره مي كنه و هيچ نوع فشرده سازي روش انجام نمي ده . پس در هنگام خواندن داده ها نياز به تبديلي نيست .

rahnema1
شنبه 01 آذر 1393, 12:29 عصر
ممنون
ولي داره دانلود مي كنه پس داره ديتا رو از Zip خارج مي كنه . باز هم مي شه Extract كردن بخشي از ديتاها. اينجا منظور اجرا هست بدون باز شدن در Temp مثل اجراي يك فيلم از داخل يك پوشه .

باز هم ممنون از وقتي كه گذاشتين

مسلمه که باید از زیپ خارج بشه. حتی اگه به صورت فولدر هم باهاش برخورد بشه هم همین جوره بالاخره باید توسط الگوریتم مورد نظر از فشرده سازی خارج بشه
مزیت این روشی که اشاره کردم اینه که فایل را به صورت یکجا استخراج نمی کنه بلکه ذره ذره باز می کنه یعنی یک بافر ایجاد می کنه و داده های موقتی را داخل اون میذاره دقیقا شبیه کاری که mediaplayer با فایل ویدئو می کنه

دنیای دلفی
شنبه 01 آذر 1393, 14:03 عصر
يكي از ويژگي هاي كه در فشرده سازي هست حالت Store هست كه فقط ذخيره مي كنه چون در اين حالت فشرده سازي انجام نمي شه و فقط فايلها مجتمع و Pakage مي شن . كه ظاهرا شتاب چند رسانه از اين ويژگي بهره گرفته . به خاطر همين ديگه فايلي Extract نمي شه و فقط اجرا مي شه. فايل Zip رو رمز مي ده و از بيرون با يه App پسورد رو تا يه حدي در يك محيط امن به فايل تزريق مي كنه و باعث مي شه كه فايل هاي موجود در فايل Zip شبيه به محتويات يك پوشه بشن و باهاشون كار مي كنه فيلم يا عكس پخش مي شه و كلا Extract منتفي مي شه.
من الان دارم تلاش مي كنم به اين ويژگي دسترسي پيدا كنم.

Mask
شنبه 01 آذر 1393, 21:38 عصر
به نظر من باید سوال رو یکم تغییر داد.
با روش یوسف کاملا موافقم. یادمه پارسال یه همچین چیزی میخاستم.(با کمک داش یوسف نوشتم)
دقیقا چی میخواستم؟
میخواستم عکس و فایلهای صوتی حالت کمپرس باشند. اما جایی اکسترکت نشه.
یه الگوریتم مبهم سازی و فشرده سازی نوشتم(از حالت استاندارد خارج شد). فایلهای مورد نظرمو کمپرس و مبهم کردم. افستها رو اخر فایل نوشتم.
از اخر فایل افست و سایز رو میخوندم، تو برنامه لود میکردم و نمایش میدادم. اینجوری هیچ چیزی دست کاربر نمیرسید. حتی اگه دامپ هم میکرد یه تیکش دستش میومد، چون من تیکه تیکه لود میکردم.
این رو هم مد نظر داشته باشید، فایل تصویری 4 گیگی رو هم باید تیکه تیکه خوند(دقیقا مثل زمانی که شما از نت دارید فیلم میبینید. هی بافر میکنه و هی play میکنه. حالا چون روی لوکال هستیم دیگه دیلایی نیست و کسی متوجه نمیشه.)
موفق باشید.

*جیگرم*
یک شنبه 02 آذر 1393, 01:13 صبح
بنده از BoxedAppSDK استفاده کردم برای پخش فایل ویدئو و خیلی هم کارساز بود.
بطوری که برنامه پس از اجرا پلیری ظاهر شده که فیلمی را که درون اگزه فایل بوده و رمزنگاری شده است را پخش می کند.