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/360x640Technical 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.mp4Response Data
| Content-Type | video/mp4 |
| Cache-Control | public, max-age=86400, immutable |
| Accept-Ranges | bytes |
| Access-Control-Allow-Origin | * |
| X-RateLimit-Limit | 60 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/360x640Technical 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.