{"id":10745,"date":"2024-03-14T12:44:57","date_gmt":"2024-03-14T12:44:57","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-can-one-retrieve-the-first-frame-of-a-video-in-php\/"},"modified":"2025-08-04T03:24:12","modified_gmt":"2025-08-04T03:24:12","slug":"how-can-one-retrieve-the-first-frame-of-a-video-in-php","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-can-one-retrieve-the-first-frame-of-a-video-in-php\/","title":{"rendered":"PHP FFmpeg: Get First Video Frame"},"content":{"rendered":"<p>To get the first frame of a video in PHP, you can achieve it by using the FFmpeg library. Here is a simple PHP script example to retrieve the first frame of a video using FFmpeg:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-meta\">&lt;?php<\/span>\r\n<span class=\"hljs-variable\">$videoPath<\/span> = <span class=\"hljs-string\">'path\/to\/your\/video.mp4'<\/span>; <span class=\"hljs-comment\">\/\/ \u89c6\u9891\u6587\u4ef6\u8def\u5f84<\/span>\r\n\r\n<span class=\"hljs-comment\">\/\/ \u4f7f\u7528 FFmpeg \u83b7\u53d6\u89c6\u9891\u7b2c\u4e00\u5e27\u7684 base64 \u7f16\u7801<\/span>\r\n<span class=\"hljs-variable\">$ffmpegPath<\/span> = <span class=\"hljs-string\">'path\/to\/ffmpeg'<\/span>; <span class=\"hljs-comment\">\/\/ FFmpeg \u5e93\u8def\u5f84<\/span>\r\n<span class=\"hljs-variable\">$cmd<\/span> = <span class=\"hljs-string\">\"<span class=\"hljs-subst\">$ffmpegPath<\/span> -i <span class=\"hljs-subst\">$videoPath<\/span> -ss 00:00:01 -vframes 1 -f image2pipe -\"<\/span>; <span class=\"hljs-comment\">\/\/ \u83b7\u53d6\u7b2c\u4e00\u5e27\u7684\u547d\u4ee4<\/span>\r\n<span class=\"hljs-variable\">$imageData<\/span> = <span class=\"hljs-title function_ invoke__\">shell_exec<\/span>(<span class=\"hljs-variable\">$cmd<\/span>); <span class=\"hljs-comment\">\/\/ \u6267\u884c\u547d\u4ee4\uff0c\u83b7\u53d6\u7b2c\u4e00\u5e27\u56fe\u50cf\u6570\u636e<\/span>\r\n\r\n<span class=\"hljs-comment\">\/\/ \u5c06 base64 \u7f16\u7801\u7684\u56fe\u50cf\u6570\u636e\u663e\u793a\u51fa\u6765<\/span>\r\n<span class=\"hljs-variable\">$imageData<\/span> = <span class=\"hljs-title function_ invoke__\">base64_encode<\/span>(<span class=\"hljs-variable\">$imageData<\/span>);\r\n<span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">'&lt;img src=\"data:image\/jpeg;base64,'<\/span> . <span class=\"hljs-variable\">$imageData<\/span> . <span class=\"hljs-string\">'\"&gt;'<\/span>;\r\n<span class=\"hljs-meta\">?&gt;<\/span>\r\n<\/code><\/pre>\n<p>In the example above, first, the paths of the video file and the FFmpeg library are specified. Then, the FFmpeg command-line tool is used to extract the first frame image data of the video and output it in base64-encoded format on the page.<\/p>\n<p>Please note that using FFmpeg requires installing the FFmpeg library and having permission to execute shell commands on the server. Additionally, for safety precautions, it is recommended to check and verify user-uploaded video files to prevent malicious code injection.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>To get the first frame of a video in PHP, you can achieve it by using the FFmpeg library. Here is a simple PHP script example to retrieve the first frame of a video using FFmpeg: &lt;?php $videoPath = &#8216;path\/to\/your\/video.mp4&#8217;; \/\/ \u89c6\u9891\u6587\u4ef6\u8def\u5f84 \/\/ \u4f7f\u7528 FFmpeg \u83b7\u53d6\u89c6\u9891\u7b2c\u4e00\u5e27\u7684 base64 \u7f16\u7801 $ffmpegPath = &#8216;path\/to\/ffmpeg&#8217;; \/\/ FFmpeg \u5e93\u8def\u5f84 $cmd [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[13553,13555,660,1403,13554],"class_list":["post-10745","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-ffmpeg","tag-image-extraction","tag-php","tag-tutorial","tag-video-processing"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>PHP FFmpeg: Get First Video Frame - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Extract the first frame of any video file using PHP and FFmpeg with simple code examples.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-can-one-retrieve-the-first-frame-of-a-video-in-php\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PHP FFmpeg: Get First Video Frame\" \/>\n<meta property=\"og:description\" content=\"Extract the first frame of any video file using PHP and FFmpeg with simple code examples.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-can-one-retrieve-the-first-frame-of-a-video-in-php\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-14T12:44:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-04T03:24:12+00:00\" \/>\n<meta name=\"author\" content=\"Sophia Anderson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sophia Anderson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-one-retrieve-the-first-frame-of-a-video-in-php\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-one-retrieve-the-first-frame-of-a-video-in-php\/\"},\"author\":{\"name\":\"Sophia Anderson\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/19a24313de9c988db3d69226b4a40a30\"},\"headline\":\"PHP FFmpeg: Get First Video Frame\",\"datePublished\":\"2024-03-14T12:44:57+00:00\",\"dateModified\":\"2025-08-04T03:24:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-one-retrieve-the-first-frame-of-a-video-in-php\/\"},\"wordCount\":125,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"FFmpeg\",\"image extraction\",\"PHP\",\"tutorial\",\"video processing\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-one-retrieve-the-first-frame-of-a-video-in-php\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-can-one-retrieve-the-first-frame-of-a-video-in-php\/\",\"name\":\"PHP FFmpeg: Get First Video Frame - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-14T12:44:57+00:00\",\"dateModified\":\"2025-08-04T03:24:12+00:00\",\"description\":\"Extract the first frame of any video file using PHP and FFmpeg with simple code examples.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-one-retrieve-the-first-frame-of-a-video-in-php\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-can-one-retrieve-the-first-frame-of-a-video-in-php\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-one-retrieve-the-first-frame-of-a-video-in-php\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PHP FFmpeg: Get First Video Frame\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/19a24313de9c988db3d69226b4a40a30\",\"name\":\"Sophia Anderson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c726c09aa40e37115fb5c62d0c3ed62c16ca255d3763e2e3ae83a70ddf8c2175?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c726c09aa40e37115fb5c62d0c3ed62c16ca255d3763e2e3ae83a70ddf8c2175?s=96&d=mm&r=g\",\"caption\":\"Sophia Anderson\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/sophiaanderson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PHP FFmpeg: Get First Video Frame - Blog - Silicon Cloud","description":"Extract the first frame of any video file using PHP and FFmpeg with simple code examples.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-can-one-retrieve-the-first-frame-of-a-video-in-php\/","og_locale":"en_US","og_type":"article","og_title":"PHP FFmpeg: Get First Video Frame","og_description":"Extract the first frame of any video file using PHP and FFmpeg with simple code examples.","og_url":"https:\/\/www.silicloud.com\/blog\/how-can-one-retrieve-the-first-frame-of-a-video-in-php\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-14T12:44:57+00:00","article_modified_time":"2025-08-04T03:24:12+00:00","author":"Sophia Anderson","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Sophia Anderson","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-can-one-retrieve-the-first-frame-of-a-video-in-php\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-can-one-retrieve-the-first-frame-of-a-video-in-php\/"},"author":{"name":"Sophia Anderson","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/19a24313de9c988db3d69226b4a40a30"},"headline":"PHP FFmpeg: Get First Video Frame","datePublished":"2024-03-14T12:44:57+00:00","dateModified":"2025-08-04T03:24:12+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-can-one-retrieve-the-first-frame-of-a-video-in-php\/"},"wordCount":125,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["FFmpeg","image extraction","PHP","tutorial","video processing"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-can-one-retrieve-the-first-frame-of-a-video-in-php\/","url":"https:\/\/www.silicloud.com\/blog\/how-can-one-retrieve-the-first-frame-of-a-video-in-php\/","name":"PHP FFmpeg: Get First Video Frame - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-14T12:44:57+00:00","dateModified":"2025-08-04T03:24:12+00:00","description":"Extract the first frame of any video file using PHP and FFmpeg with simple code examples.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-can-one-retrieve-the-first-frame-of-a-video-in-php\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-can-one-retrieve-the-first-frame-of-a-video-in-php\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-can-one-retrieve-the-first-frame-of-a-video-in-php\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"PHP FFmpeg: Get First Video Frame"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/19a24313de9c988db3d69226b4a40a30","name":"Sophia Anderson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c726c09aa40e37115fb5c62d0c3ed62c16ca255d3763e2e3ae83a70ddf8c2175?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c726c09aa40e37115fb5c62d0c3ed62c16ca255d3763e2e3ae83a70ddf8c2175?s=96&d=mm&r=g","caption":"Sophia Anderson"},"url":"https:\/\/www.silicloud.com\/blog\/author\/sophiaanderson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/10745","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=10745"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/10745\/revisions"}],"predecessor-version":[{"id":154514,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/10745\/revisions\/154514"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=10745"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=10745"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=10745"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}