এইচটিএমএল 5 ভিডিও পোস্টারকে ভিডিওর মতোই আকারের করুন


96

এইচটিএমএল 5 ভিডিও পোস্টারকে কীভাবে আকার পরিবর্তন করতে হয় তা কি কেউ জানেন যে এটি ভিডিওর সঠিক মাত্রার সাথে খাপ খায়?

এখানে একটি জাসফিডল যা সমস্যাটি দেখায়: http://jsfiddle.net/zPacg/7/

এই কোডটি এখানে:

এইচটিএমএল:

<video controls width="100%" height="100%"  poster="http://www.wpclipart.com/blanks/buttons/glossy_buttons/glossy_button_blank_orange_rectangle.png">
  <source src="http://demo.inwebson.com/html5-video/iceage4.mp4" type="video/mp4" />
  <source src="http://demo.inwebson.com/html5-video/iceage4.ogg" type="video/ogg" />
  <source src="http://demo.inwebson.com/html5-video/iceage4.webm" type="video/webm" />
</video>​

সিএসএস:

video{
border:1px solid red;
}​

লক্ষ্য করুন যে কমলা আয়তক্ষেত্রটি ভিডিওর লাল সীমানায় স্কেল করে না।

এছাড়াও, কেবল নীচে সিএসএস যুক্ত করা পোস্টারের পাশাপাশি ভিডিওটিকে পুনরায় সাজানোর কারণে কার্যকর হয় না:

video[poster]{
height:100%;
width:100%;
}

4
আমি মনে করি না আপনি বৈশিষ্ট্যগুলিতে "%" ব্যবহার করতে পারেন; তবে এটি 100 এ পরিবর্তন করা সমস্যার সমাধান করে না। আমি এর একটি ওয়েবেকিট মিডিয়া স্টাইল বেটে দেব। তাদের মাধ্যমে বাছাই করতে নির্দ্বিধায় trac.webkit.org/browser/trunk/Source/WebCore/css/…
অ্যালবার্ট

@ অ্যালবার্ট, ধন্যবাদ posterআপনার প্রেরিত লিঙ্কটিতে আমি কোনও উল্লেখ দেখতে পাই না । আপনি যে বিষয়ে কথা বলছেন, তার জন্য সিএসএস দেখতে কেমন দেখাচ্ছে আমাকে দেখাতে পারেন, " -webkit media style"? ধন্যবাদ
টিম পিটারসন

আচ্ছা "পিকিং" বলতে আমি এটাই বুঝি; এগুলি ক্রোম নির্দিষ্ট মিডিয়া শৈলী; আমি কেবল তাদের সাথে অস্পষ্টভাবে পরিচিত, ছদ্ম নির্বাচকদের তারা যে ঘোষণা দিচ্ছে তা ছেড়ে দাও; কোনও প্রারম্ভিক বিন্দু ছাড়াই: আমি প্যাডিং ইত্যাদির সাথে ঘোষণাপত্রগুলি অনুসন্ধান করতে যাব
এলবার্ট

উত্তর:


52

আপনি এই (অর্জন একটি সিএসএস ব্যাকগ্রাউন্ড ইমেজ সঙ্গে একযোগে একটি স্বচ্ছ পোস্টার চিত্র ব্যবহার করতে পারেন উদাহরণস্বরূপ ); তবে, একটি ভিডিওর উচ্চতা এবং প্রস্থে প্রসারিত হওয়ার জন্য, আপনাকে একেবারে অবস্থানযুক্ত <img>ট্যাগ ব্যবহার করতে হবে ( উদাহরণস্বরূপ )।

এছাড়া করা সম্ভব সেট background-sizeকরার100% 100% মধ্যে ব্রাউজারে সমর্থনbackground-size ( উদাহরণস্বরূপ )।


হালনাগাদ

এটি করার আরও ভাল উপায় object-fitহ'ল @ লার্স এরিকসনের পরামর্শ অনুসারে CSS সম্পত্তি ব্যবহার করা ।

ব্যবহার

object-fit: cover;

আপনি যদি চিত্রটির সেই অংশগুলি প্রদর্শন করতে না চান যা ভিডিওর অনুপাতের অনুপাতের সাথে খাপ খায় না

object-fit: fill;

আপনার ভিডিওর দিক অনুপাতের সাথে মানানসই চিত্রটি প্রসারিত করতে

উদাহরণ


- @ ব্যবহারকারী 1419007, আপনার উদাহরণ পটভূমির চিত্র পুনরাবৃত্তি করে। যেহেতু আপনি পরামর্শ দিচ্ছেন যে এটি সর্বোত্তম উপায় নয়, আপনি কীভাবে আপনার ২ য় কৌশল বাস্তবায়ন করবেন তা প্রদর্শনের জন্য একটি জিসফিল সরবরাহ করতে আপত্তি করবেন?
টিম পিটারসন

আমি no-repeatব্যাকগ্রাউন্ড ইমেজ এডিট করেছি । অন্যান্য সমাধান হিসাবে, আমাকে এটি কাজ করার জন্য একটি মুহূর্ত দিন।
ব্যবহারকারী 2428118

সম্পাদনা করুন: দ্বিতীয় প্রস্তাবিত সমাধানের জন্য যুক্ত উদাহরণ।
ব্যবহারকারী 2428118

এর জন্য ধন্যবাদ, z-indexআপনি যখন এটিকে চালানো শুরু করেন তখন ভিডিওটির দৃশ্যমান চিত্রটির পরিবর্তন করতে আমাদের কিছু জাভাস্ক্রিপ্ট দরকার ।
টিম পিটারসন

4
.. দ্বিতীয় উদাহরণ ক্রোমে কাজ করেনি? আপনার বাইরের ডিভিটি jsfiddle.net/xh8er এর মতো অবস্থান দেওয়ার দরকার নেই ; তারপর এটি কাজ করে।
কমনপাইক

88

আপনি কোন ব্রাউজারগুলিকে টার্গেট করছেন তার উপর নির্ভর করে আপনি এটি সমাধান করার জন্য অবজেক্ট-ফিট সম্পত্তিটির জন্য যেতে পারেন :

object-fit: cover;

অথবা fillআপনি যা খুঁজছেন তা হতে পারে। IE এর জন্য এখনও বিবেচনাধীন


4
এটি অবশ্যই উত্তর।
cilphex

4
আমার জন্য এটি ব্যবহার করে অবজেক্ট-ফিট সম্পত্তিটির লিঙ্কটির জন্য +1 object-fit: initial
ফায়ারব্র্যান্ড

"অবজেক্ট-ফিট: ফিল" কৌতুকটি করেছিল! যেমনটি "অবজেক্ট-ফিট: ইনিশিয়াল" ছিল (অদ্ভুতভাবে, কারণ আমি ডেভেলপার.মোজিলা.আর.এজ.ইন.ইউএস / ডকস / ওয়েবে / সিএসএস / অজেক্ট-ফিফ্টে অনুমানের একটি "প্রাথমিক" মান দেখতে পাই না )। "কভার" এবং "ধারণ" উভয়ই অ্যান্ড্রয়েড 5.1.1 এর অধীনে স্যামসাংয়ের নেটিভ ব্রাউজারে খেলতে পোস্টারটিকে বিকৃত করে। এবং IE প্রভাবিত করে না!
প্লাগকন্টিনিয়র

4
আপনি ছেলেরা অবজেক্ট-ফিটের নিয়মের জন্য কোন সিএসএস নির্বাচককে টার্গেট করেছিলেন? যেহেতু পোস্টার চিত্রটিকে লক্ষ্য করার কোনও উপায় নেই, তাই আমি ধরে নিই যে আপনি ব্যবহার করেছেন video{object-fit: cover;}?
zıəs uɐɟəʇs

@ zıəs uɐɟəʇs আমার CSS এ এটি ... ভিডিও [পোস্টার] {অবজেক্ট-ফিট: ফিল}
প্লাগিনকন্টেইনার

27

অথবা আপনি preload="none"ভিডিও ব্যাকগ্রাউন্ড দৃশ্যমান করতে কেবল অ্যাট্রিবিউট ব্যবহার করতে পারেন । এবং আপনি background-size: cover;এখানে ব্যবহার করতে পারেন ।

 video {
   background: transparent url('video-image.jpg') 50% 50% / cover no-repeat ;
 }

 <video preload="none" controls>
   <source src="movie.mp4" type="video/mp4">
   <source src="movie.ogg" type="video/ogg">
 </video>

4
ভাল উত্তর। কোনও কিছু ভাঙবে না, এবং ভিডিওর কেন্দ্রিক সাইট না থাকলে কোনও ভিডিও প্রাক লোড করা আপনার পৃষ্ঠায় সত্যই ক্ষতি করবে না। +1
নটলিজার্ডস

4
আমার মোবাইলে অন-প্লে ব্যাকগ্রাউন্ডের আকার পরিবর্তন ছিল। অন্যান্য প্রশ্ন / উত্তর থেকে এখানে (উদাঃ স্ট্যাকওভারফ্লো / প্রশ্ন / 18229974 /… ) মনে হচ্ছে সমস্যাটি চিত্রগুলির সদৃশ (প্লেয়ার সিএসএস ব্যাকগ্রাউন্ড এবং ভিডিও উপাদান পোস্টার)। এই ফিক্স কাজ করে।
প্লাগকন্টিনেয়ার

4
হুম ... ক্রোমে কাজ করেছে তবে দেশীয় অ্যান্ড্রয়েড ব্রাউজারে একটি নতুন সমস্যা তৈরি করেছে। দেখুন: stackoverflow.com/questions/39546792/...
plugincontainer

শেষ পর্যন্ত স্থির - নীচে লারস এরিকসনের উত্তর দেখুন
অবধি স্থির

27

আমি এটির সাথে খেলছিলাম এবং সবগুলি সমাধান চেষ্টা করেছিলাম, শেষ পর্যন্ত আমি যে সমাধানটি দিয়েছিলাম সেটি হ'ল গুগল ক্রোমের পরিদর্শকের পরামর্শ। আপনি যদি এটি আপনার সিএসএসে যুক্ত করেন তবে এটি আমার পক্ষে কাজ করেছে:

video{
   object-fit: inherit;
}

ধন্যবাদ! আমি ওপরে এবং নীচে ভিডিওর ফাঁকটি সরিয়ে নেওয়ার জন্য ঠিক ঠিক এই
ফিক্সটি খুঁজছিলাম

12

আমার সমাধানটিতে ব্যবহারকারী 2428118 এবং ভাইকো জাগারের উত্তরগুলি একত্রিত করা হয়েছে, প্রিলোডিংয়ের জন্য অনুমতি দিচ্ছে তবে আলাদা স্বচ্ছ চিত্রের প্রয়োজন ছাড়াই। আমরা এর পরিবর্তে একটি বেস 64 এনকোডেড 1px স্বচ্ছ চিত্র ব্যবহার করি।

<style type="text/css" >
    video{
        background: transparent url("poster.jpg") 50% 50% / cover no-repeat ;
    }
</style>
<video controls poster="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" >
    <source src="movie.mp4" type="video/mp4">
    <source src="movie.ogg" type="video/ogg">
</video>

এটি কি কেবল ইমেজের নাম বা সম্পূর্ণ পথ হতে হবে?

আমার সংসংয়ে অ্যান্ড্রয়েড নেটিভ ব্রাউজারে (ব্রাউজারটির নাম দেওয়া হয়েছে "ইন্টারনেট") পোস্টারটিকে পুনরায় আকার দেওয়া হয়েছে ... বিপর্যয়করভাবে অন-প্লে। এই সমাধান - পোস্টার হিসাবে স্বচ্ছ জিআইএফ এবং একটি ব্যাকগ্রাউন্ড হিসাবে "পোস্টার" - সমাধান হয়েছে, তবে, .. এখন পোস্টার আইই -9, 10 বা 11-এ প্রদর্শিত হয় না
প্লাগইনকন্টেইনার

4
সমাধানটি ছিল স্বচ্ছ জিআইএফ এবং পোস্টার-হিসাবে-ব্যাকগ্রাউন্ড ত্যাগ এবং ভিডিওটির উপরে (লার্স এরিকসনের উত্তর দেখুন) {অবজেক্ট-ফিট: ফিল} use অ্যান্ড্রয়েড 5.1.1 এর অধীনে স্যামসাং নেটিভ ব্রাউজারে সমস্যার সমাধান। এবং IE কোনও সমস্যা ছাড়াই পোস্টার প্রদর্শন করে
প্লাগইনকন্টেইনার

এই পদ্ধতির বিশেষত মোবাইলের জন্য ভাল। অ্যানড্রয়েডে যে object-fitবন্য আকারের বিকৃতি posterঘটে তা কন্টেন্টটি লোড হওয়ার সময়ে প্রতিরোধ করে না ।
TheLinguist

5

আমি এই ধারণাটি নিয়ে এসেছি এবং এটি পুরোপুরি কার্যকর হয়। ঠিক আছে তাই মূলত আমরা ভিডিওটি প্রদর্শন থেকে প্রথম ফ্রেম থেকে মুক্তি দিতে এবং তারপরে পোস্টারগুলিকে প্রকৃত আকারে আকার দিতে চাই। এরপরে যদি আমরা মাত্রা নির্ধারণ করি তবে আমরা এই কাজগুলির মধ্যে একটি সম্পন্ন করেছি। তারপরে একটি মাত্র রয়ে যায়। সুতরাং এখন, প্রথম ফ্রেমটি থেকে মুক্তি পাওয়ার জন্য আমার জানা একমাত্র উপায়টি আসলে একটি পোস্টার সংজ্ঞায়িত করা। তবে আমরা ভিডিওটি একটি নকল একটি দিতে যাচ্ছি যা বিদ্যমান নেই। এর ফলে ব্যাকগ্রাউন্ড স্বচ্ছ সহ একটি ফাঁকা প্রদর্শন ঘটবে। অর্থাৎ আমাদের পিতামাতার ডিভের পটভূমি দৃশ্যমান হবে।

ব্যবহারের জন্য সহজ, তবে আপনি যদি ওয়েব কোডটির ব্যাকগ্রাউন্ডের মাত্রাটি ভিডিওর মাত্রায় আকার পরিবর্তন করতে চান তবে এটি সমস্ত ওয়েব ব্রাউজারগুলির সাথে কাজ করতে পারে না কারণ আমার কোডটি "ব্যাকগ্রাউন্ড-আকার" ব্যবহার করছে।

এইচটিএমএল / এইচটিএমএল 5:

<div class="video_poster">
    <video poster="dasdsadsakaslmklda.jpg" controls>
        <source src="videos/myvideo.mp4" type="video/mp4">
        Your browser does not support the video tag.
    </video>
<div>

সিএসএস:

video{
    width:694px;
    height:390px;
}
.video_poster{
    width:694px;
    height:390px;
    background-size:694px 390px;
    background-image:url(images/myvideo_poster.jpg);
}

এই চালাক, আমি এটি একটি শট দিয়েছি। এটি নিখুঁত নয় তবে সেখানে পৌঁছেছে
টিম

হাঁ আপনি ঠিক. আপনার জেসফিল ​​দেখে আমি বুঝতে পারি যে ভিডিওর মাত্রাটি কেবল ভিডিও উপাদান নয়, সঠিক হতে হবে। আমি অনুমান করি যে আমি আমার পৃষ্ঠায় এটি চেষ্টা করার সময় আমি কেবল ভাগ্যবান ছিলাম।
জোনাথন জে

5
<video src="videofile.webm" poster="posterimage.jpg" controls preload="metadata">
    Sorry, your browser doesn't support embedded videos.
</video>

আবরণ

video{
   object-fit: cover; /*to cover all the box*/
}

পূরণ করুন

video{
   object-fit: fill; /*to add black content at top and bottom*/
   object-position: 0 -14px; /* to center our image*/
}

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


1

আমার অনুরূপ সমস্যা ছিল এবং আমার ভিডিওর মতো একই দিক অনুপাত সহ একটি চিত্র তৈরি করে এটি ঠিক করেছি (16: 9)। আমার প্রস্থটি ভিডিও ট্যাগে 100% এ সেট করা হয়েছে এবং এখন চিত্রটি (320 x 180) পুরোপুরি ফিট করে। আশা করি এইটি কাজ করবে!


1

থাম্ব উত্পন্ন করার পরে আপনি চিত্রের আকার পরিবর্তন করতে পারেন

exec("ffmpeg -i $video_image_dir/out.png -vf scale=320:240 {$video_image_dir}/resize.png",$out2, $return2);

1

আপনি মোবাইল ডিভাইসে ভিডিওর পরিবর্তে চিত্র প্রদর্শন করতে পোস্টার ব্যবহার করতে পারেন (বা এমন ডিভাইস যা ভিডিও অটোপ্লে কার্যকারিতা সমর্থন করে না)। কারণ মোবাইল ডিভাইসগুলি ভিডিও অটোপ্লে কার্যকারিতা সমর্থন করে না।

<div id="wrap_video">
<video preload="preload" id="Video" autoplay="autoplay" loop="loop" poster="default.jpg">
<source src="Videos.mp4" type="video/mp4">
Your browser does not support the <code>video</code> tag.
</video>
</div>

এখন আপনি কেবল পোস্টার বৈশিষ্ট্যটি স্টাইল করতে পারেন যা মিডিয়া-ক্যোয়ারির মাধ্যমে মোবাইল ডিভাইসের জন্য ভিডিও ট্যাগের মধ্যে রয়েছে।

#wrap_video
{
width:480px;
height:360px;
position: relative;
} 
@media (min-width:360px) and (max-width:780px)
{
video[poster]
{
top:0 !important;
left:0 !important;
width:480px !important;
height:360px !important;
position: absolute !important;
}
}

আসলে, আইওএস 10+ প্লেলাইনলাইন বৈশিষ্ট্যের সাথে ভিডিও অটোপ্লে কার্যকারিতা সমর্থন করে।
লুকাশ পেটর

আপনি কীভাবে সেই বৈশিষ্ট্যটি নির্দিষ্ট করবেন?
খোম নাজিদ

0
height:500px;
min-width:100%;
-webkit-background-size: 100% 100%;
-moz-background-size: 100% 100%;
-o-background-size: 100% 100%;
background-size:100% 100%;
object-fit:cover;

-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size:cover;

0

এটি কাজ করে

<video class="video-box" poster="/" controls>
    <source src="some source" type="video/mp4">
</video>

এবং সিএসএস

.video-box{
 background-image: 'some image';
 background-size: cover;
}

0
  <div class="container">
        <video poster="~/Content/WebSite/img/SiteSetting/Load.gif" autoplay muted loop class="myVideo">
            <source src="~/Content/WebSite/images/VideoTube.mp4" type="video/mp4" />
        </video>

    </div>



 <style>
    .myVideo {
position: absolute;
right: 0;
left: 0;
bottom: 0;
min-width: 100%;
min-height: 100%;
object-fit: inherit;
 }
@media only screen and (max-width:768px) {
.myVideo {
    position: absolute;
    right: 0;
    left: 0;
    bottom: 0;
    max-width: -webkit-fill-available;
    min-height: 100%;
    object-fit: cover;
    }
   }

     @media only screen and (max-width:320px) {
.myVideo {
    position: absolute;
    right: 0;
    left: 0;
    bottom: 0;
    max-width: -webkit-fill-available;
    min-height: 100%;
    object-fit: cover;
  }
}
</style>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.