Vertical nHD Placeholder Video (360×640)

Generate 360×640 placeholder videos instantly via URL.9:16 aspect ratio, 10-second duration, MP4 H.264.

About Vertical nHD Resolution

360×640 represents the vertical equivalent of 360p nHD, rotated 90 degrees for portrait-oriented devices. This low-resolution vertical format serves bandwidth-constrained mobile scenarios where even 720×1280 would be excessive. While rarely used for primary content today, 360×640 remains relevant for fallback streams in adaptive bitrate systems, feature phone compatibility, and IoT devices with limited display capabilities.

Video Preview

Direct URL

Copy this URL to use your Vertical nHD placeholder video:

https://placeholdervideo.dev/360x640

Technical Specifications

Resolution
360 × 640 pixels
Aspect Ratio
9:16
Category
portrait
Duration
10 seconds
Format
MP4 (H.264, AAC-LC silent audio)
Frame Rate
30 fps
Approx. MP4 Size
174 KB-313 KB
Generation Time
usually under 1 second uncached; repeat requests should hit cache
Video Codec
H.264 / AVC, Baseline profile, yuv420p
Audio Codec
AAC-LC silent stereo, 48 kHz

Copy-Paste Use Cases

Use this 360×640 sample MP4 URL as a stable fixture in browser, end-to-end, and media pipeline tests. For broader examples, see the sample MP4 URL guide.

HTML Video

<video
  controls
  preload="metadata"
  width="360"
  height="640"
  poster="https://placeholdervideo.dev/poster/360x640"
>
  <source src="https://placeholdervideo.dev/360x640" type="video/mp4" />
</video>

Playwright / Cypress

// Playwright: assert the browser sees real video metadata.
const metadata = await page.locator('video').evaluate((node) => {
  const video = node as HTMLVideoElement
  video.src = 'https://placeholdervideo.dev/360x640'
  video.load()
  return new Promise<{ width: number; height: number; duration: number }>((resolve) => {
    video.addEventListener('loadedmetadata', () => {
      resolve({
        width: video.videoWidth,
        height: video.videoHeight,
        duration: Math.round(video.duration)
      })
    }, { once: true })
  })
})

expect(metadata).toEqual({ width: 360, height: 640, duration: 10 })

// Cypress: attach the same fixture URL in an existing player test.
cy.get('video')
  .invoke('attr', 'src', 'https://placeholdervideo.dev/360x640')
  .then(() => cy.get('video')[0].load())

curl / ffprobe

curl -L -o placeholder-360x640.mp4 https://placeholdervideo.dev/360x640

ffprobe -v error \
  -select_streams v:0 \
  -show_entries stream=codec_name,width,height,pix_fmt \
  -show_entries format=duration \
  -of json placeholder-360x640.mp4

Response Data

Content-Typevideo/mp4
Cache-Controlpublic, max-age=86400, immutable
Accept-Rangesbytes
Access-Control-Allow-Origin*
X-RateLimit-Limit60 standard / 10 heavy per minute

Browser compatibility: Chrome, Edge, Safari, Firefox, iOS Safari, Android Chrome, HTML5 video players such as video.js and Plyr.

When to Use 360×640

Use 360×640 placeholders when testing ultra-low-bandwidth vertical video scenarios or developing for markets with severe connectivity constraints. The resolution is appropriate for thumbnail generation, preview streams, or any application where file size takes absolute priority over visual quality.

Integration Examples

HTML

<video src="https://placeholdervideo.dev/360x640" width="360" height="640" controls></video>

JavaScript Fetch

fetch('https://placeholdervideo.dev/360x640')
  .then(res => res.blob())
  .then(blob => {
    const url = URL.createObjectURL(blob)
    document.querySelector('video').src = url
  })

cURL

curl -O https://placeholdervideo.dev/360x640

Technical Considerations

Vertical 360p requires similar bitrates to horizontal 360p (400-800 kbps), producing files around 500KB-1MB for 10 seconds. The portrait orientation may expose decode optimizations on some chips designed primarily for landscape video.

Common Questions

Is 360x640 practical for modern mobile development?
Rarely. Modern smartphones handle 720×1280 efficiently, making 360×640 primarily useful for legacy compatibility or extreme bandwidth constraints.
When would I choose 360x640 over 720x1280?
Only when bandwidth is severely limited (under 1 Mbps) or when targeting devices from before 2015 that may struggle with higher resolutions.

Related Guides

Learn more about generating videos programmatically in the API documentation.