{"id":6637,"date":"2025-09-29T12:26:01","date_gmt":"2025-09-29T04:26:01","guid":{"rendered":"https:\/\/xinchewhd.com.cn\/?p=6637"},"modified":"2025-09-29T12:26:08","modified_gmt":"2025-09-29T04:26:08","slug":"%e8%bf%9c%e7%a8%8b%e8%8e%b7%e5%8f%96%e6%9c%8d%e5%8a%a1%e5%99%a8%e4%b8%8a%e7%9a%84%e8%a7%86%e9%a2%91%e6%96%87%e4%bb%b6%e7%9a%84%e6%88%aa%e5%9b%be%e6%88%96%e7%94%9f%e6%88%90%e7%bc%a9%e7%95%a5%e5%9b%be","status":"publish","type":"post","link":"https:\/\/xinchewhd.com.cn\/index.php\/ffmpeg\/%e8%bf%9c%e7%a8%8b%e8%8e%b7%e5%8f%96%e6%9c%8d%e5%8a%a1%e5%99%a8%e4%b8%8a%e7%9a%84%e8%a7%86%e9%a2%91%e6%96%87%e4%bb%b6%e7%9a%84%e6%88%aa%e5%9b%be%e6%88%96%e7%94%9f%e6%88%90%e7%bc%a9%e7%95%a5%e5%9b%be\/","title":{"rendered":"\u8fdc\u7a0b\u83b7\u53d6\u670d\u52a1\u5668\u4e0a\u7684\u89c6\u9891\u6587\u4ef6\u7684\u622a\u56fe\u6216\u751f\u6210\u7f29\u7565\u56fe"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">\u670d\u52a1\u5668\u5b89\u88c5FFmpeg<\/h3>\n\n\n\n<p>FFmpeg \u53ef\u4ee5\u76f4\u63a5\u89e3\u7801\u67d0\u4e00\u5e27\u8f93\u51fa\u4e3a\u56fe\u7247\uff0c\u800c\u4e0d\u9700\u8981\u5b8c\u6574\u64ad\u653e\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install ffmpeg &nbsp; # Debian\/Ubuntu<br>sudo yum install ffmpeg &nbsp; # CentOS\/RHEL<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">\u622a\u53d6\u7b2c10\u79d2\u7684\u4e00\u5e27\u4e3ajpg\u56fe\u7247\uff1a<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>ffmpeg -ss 10 -i input.mp4 -frames:v 1 -q:v 2 output.jpg<\/code><\/pre>\n\n\n\n<p>\u53c2\u6570\u8bf4\u660e\uff1a<br><code>-ss 10<\/code>\uff1a\u8df3\u8f6c\u5230\u7b2c 10 \u79d2<br><code>-frames:v 1<\/code>\uff1a\u53ea\u53d6 1 \u5e27<br><code>-q:v 2<\/code>\uff1a\u8f93\u51fa\u56fe\u7247\u8d28\u91cf\uff081-31\uff0c\u6570\u503c\u8d8a\u5c0f\u8d28\u91cf\u8d8a\u9ad8\uff09<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u751f\u6210\u7f29\u7565\u56fe\u62fc\u56fe<\/h4>\n\n\n\n<p>\u6bcf\u9694100\u5e27\u53d6\u4e00\u5e27\uff0c\u7f29\u653e\u540e\u62fc\u6210 4x4 \u7684\u7f29\u7565\u56fe\u3002<br>\u8f93\u51fa\u6587\u4ef6 preview.jpg \u53ea\u6709\u4e00\u5f20\u56fe\u7247\u3002<br>\u56fe\u7247\u4e0a\u5305\u542b \u6700\u591a 16 \u5e27\u7684\u7f29\u7565\u56fe\uff084x4\uff09\u3002<br>\u5982\u679c\u89c6\u9891\u5f88\u77ed\uff0c\u4e0d\u591f16\u5e27\uff0ctile\u4f1a\u663e\u793a\u5b9e\u9645\u5e27\u6570\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ffmpeg -i input.mp4 -vf \"select=not(mod(n\\,100)),scale=320:-1,tile=4x4\" -frames:v 1 preview.jpg<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">\u4ece\u670d\u52a1\u5668\u4e0a\u4e0b\u8f7d\u622a\u56fe<\/h4>\n\n\n\n<p>\u53ef\u4ee5\u4f7f\u7528<code>scp<\/code>\u547d\u4ee4\u6216\u8005\u4f7f\u7528<code>python<\/code>\u76f4\u63a5\u542f\u52a8\u4e00\u4e2aweb\u670d\u52a1\u5668\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><a href=\"javascript:;\" target=\"_blank\"  rel=\"nofollow\" >#scp<\/a>&nbsp;\u547d\u4ee4<br>scp root@ip:\/root\/downloads\/snapshot_1.jpg .<br><a href=\"javascript:;\" target=\"_blank\"  rel=\"nofollow\" >#python<\/a>&nbsp;http\u670d\u52a1\u5668<br>python3 -m http.server 8080<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e00\u952e\u811a\u672c<\/h3>\n\n\n\n<p>\u4e00\u952e\u622a\u56fe\u7684\u811a\u672c\uff0c\u6839\u636e\u5165\u53c2\u53ef\u4ee5\u63a7\u5236\u751f\u6210N\u5f20\u622a\u56fe\u6216\u8005\u751f\u6210tile\u7f29\u7565\u56fe\uff0c\u5b8c\u6574\u811a\u672c\u653e\u5728\u6587\u7ae0\u6700\u540e\u9762\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u521b\u5efa\u811a\u672c<br>vim snapshot.sh<br># \u8d4b\u4e88\u6267\u884c\u6743\u9650<br>chmod +x snapshot.sh<br># \u5355\u5f20\u622a\u56fe\uff0c\u811a\u672csingle\u6a21\u5f0f \u9ed8\u8ba43\u5f20\uff0c\u540e\u9762\u53ef\u4ee5\u6307\u5b9a\u6570\u91cf<br>.\/snapshot.sh \"\u89c6\u9891\u8def\u5f84.mp4\" single 4<br># \u5408\u6210\u7f29\u7565\u56fe \u9ed8\u8ba4\u6a21\u5f0f16\u5e27\u805a\u5408\u76844*4\u7f29\u7565\u56fe<br>.\/snapshot.sh \"\u89c6\u9891\u8def\u5f84.mp4\" tile<br># \u5408\u6210\u7f29\u7565\u56fe tile \u540e\u53ef\u4ee5\u8ddf\u5e27\u6570 \u805a\u5408\u7684\u884c\u5217<br>.\/snapshot.sh \"\u89c6\u9891\u8def\u5f84.mp4\" tile 4 2 2<br>.\/snapshot.sh \"\u89c6\u9891\u8def\u5f84.mp4\" tile 16 4 4<br>.\/snapshot.sh \"\u89c6\u9891\u8def\u5f84.mp4\" tile 12 3 4<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">single\u6a21\u5f0f\u751f\u6210\u591a\u5f20\u622a\u56fe<\/h4>\n\n\n\n<p><code>single\u6a21\u5f0f<\/code>\u53ef\u4ee5\u751f\u6210\u591a\u5f20\u72ec\u7acb\u7684\u622a\u56fe\uff0c\u9ed8\u8ba4\u751f\u62103\u5f20\u622a\u56fe\uff0c\u540e\u9762\u53ef\u4ee5\u8ddf\u53c2\u6570\u751f\u6210\u6307\u5b9a\u6570\u91cf\u7684\u622a\u56fe\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># single \u6a21\u5f0f<br>root:\/root\/snapshot# .\/snapshot.sh .\/Avengers.Endgame.2019.BluRay.1080p.x265.10bit.MNHD.mkv single<br>\u751f\u6210\u72ec\u7acb\u622a\u56fe: .\/snapshot_1.jpg (\u65f6\u95f4\u70b9: 8991s)<br>\u751f\u6210\u72ec\u7acb\u622a\u56fe: .\/snapshot_2.jpg (\u65f6\u95f4\u70b9: 8623s)<br>\u751f\u6210\u72ec\u7acb\u622a\u56fe: .\/snapshot_3.jpg (\u65f6\u95f4\u70b9: 6047s)<br># \u76ee\u5f55\u4e0b\u5df2\u7ecf\u751f\u6210\u4e86\u4e09\u5f20\u622a\u56fe<br>root:\/root\/snapshot# ls -l<br>-rwxrwx--x+ 1 root root 7900246136 Sep &nbsp;4 21:48 Avengers.Endgame.2019.BluRay.1080p.x265.10bit.MNHD.mkv<br>-rw-rw----+ 1 root root &nbsp; &nbsp; 110018 Sep &nbsp;4 21:51 snapshot_1.jpg<br>-rw-rw----+ 1 root root &nbsp; &nbsp; &nbsp;87851 Sep &nbsp;4 21:51 snapshot_2.jpg<br>-rw-rw----+ 1 root root &nbsp; &nbsp; &nbsp;80915 Sep &nbsp;4 21:51 snapshot_3.jpg<br><br># \u6307\u5b9a\u6570\u91cf\u7684single\u6a21\u5f0f<br>root:\/root\/snapshot# .\/snapshot.sh .\/Avengers.Endgame.2019.BluRay.1080p.x265.10bit.MNHD.mkv single 4<br>root:\/root\/snapshot# .\/snapshot.sh .\/Avengers.Endgame.2019.BluRay.1080p.x265.10bit.MNHD.mkv single 8<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"429\" data-src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042536481-1024x429.jpg\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\" class=\"wp-image-6638 lazyload\" srcset=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042536481-1024x429.jpg 1024w, https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042536481-300x126.jpg 300w, https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042536481-768x321.jpg 768w, https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042536481.jpg 1080w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"429\" src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042536481-1024x429.jpg\" alt=\"\" class=\"wp-image-6638\" srcset=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042536481-1024x429.jpg 1024w, https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042536481-300x126.jpg 300w, https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042536481-768x321.jpg 768w, https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042536481.jpg 1080w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/noscript><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"429\" data-src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042543781-1024x429.jpg\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\" class=\"wp-image-6639 lazyload\" srcset=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042543781-1024x429.jpg 1024w, https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042543781-300x126.jpg 300w, https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042543781-768x321.jpg 768w, https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042543781.jpg 1080w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"429\" src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042543781-1024x429.jpg\" alt=\"\" class=\"wp-image-6639\" srcset=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042543781-1024x429.jpg 1024w, https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042543781-300x126.jpg 300w, https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042543781-768x321.jpg 768w, https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042543781.jpg 1080w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/noscript><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">tile\u6a21\u5f0f\u751f\u6210\u7f29\u7565\u56fe<\/h4>\n\n\n\n<p><code>tile<\/code>\u6a21\u5f0f\u53ef\u4ee5\u751f\u6210\u591a\u5f20\u622a\u56fe\u805a\u5408\u800c\u6210\u7684\u4e00\u5f20\u5b8c\u6574\u7684\u7f29\u7565\u56fe\uff0c\u9ed8\u8ba4\u662f16\u5f20\u622a\u56fe\u751f\u6210\u76844*4\u7684\u7f29\u7565\u56fe\u3002<br>\u540e\u9762\u53ef\u4ee5\u8ddf<code>\u5e27\u6570<\/code>,<code>\u884c\u6570<\/code>,<code>\u5217\u6570<\/code>\u4e09\u4e2a\u53c2\u6570\uff0c<code>\u5e27\u6570<\/code>\u7684\u503c\u8981\u7b49\u4e8e<code>\u884c\u6570<\/code>\u4e0e<code>\u5217\u6570<\/code>\u7684\u4e58\u79ef\uff0c\u4f8b\u5982<code>16 4 4<\/code>\uff0c<code>12 3 4<\/code>\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># tile \u6a21\u5f0f \u9ed8\u8ba4\u751f\u621016\u5f20\u622a\u56fe\u5408\u6210\u7684\u7f29\u7565\u56fe<br>root:\/root\/snapshot# .\/snapshot.sh Avengers.Endgame.2019.BluRay.1080p.x265.10bit.MNHD.mkv tile<br>\u751f\u6210\u4e34\u65f6\u622a\u56fe: .\/tmp_0.jpg (\u65f6\u95f4\u70b9: 218s)<br>\u751f\u6210\u4e34\u65f6\u622a\u56fe: .\/tmp_1.jpg (\u65f6\u95f4\u70b9: 687s)<br>\u751f\u6210\u4e34\u65f6\u622a\u56fe: .\/tmp_2.jpg (\u65f6\u95f4\u70b9: 1831s)<br>\u751f\u6210\u4e34\u65f6\u622a\u56fe: .\/tmp_3.jpg (\u65f6\u95f4\u70b9: 2687s)<br>\u751f\u6210\u4e34\u65f6\u622a\u56fe: .\/tmp_4.jpg (\u65f6\u95f4\u70b9: 2747s)<br>\u751f\u6210\u4e34\u65f6\u622a\u56fe: .\/tmp_5.jpg (\u65f6\u95f4\u70b9: 3773s)<br>\u751f\u6210\u4e34\u65f6\u622a\u56fe: .\/tmp_6.jpg (\u65f6\u95f4\u70b9: 4340s)<br>\u751f\u6210\u4e34\u65f6\u622a\u56fe: .\/tmp_7.jpg (\u65f6\u95f4\u70b9: 4825s)<br>\u751f\u6210\u4e34\u65f6\u622a\u56fe: .\/tmp_8.jpg (\u65f6\u95f4\u70b9: 5832s)<br>\u751f\u6210\u4e34\u65f6\u622a\u56fe: .\/tmp_9.jpg (\u65f6\u95f4\u70b9: 6393s)<br>\u751f\u6210\u4e34\u65f6\u622a\u56fe: .\/tmp_10.jpg (\u65f6\u95f4\u70b9: 6851s)<br>\u751f\u6210\u4e34\u65f6\u622a\u56fe: .\/tmp_11.jpg (\u65f6\u95f4\u70b9: 7583s)<br>\u751f\u6210\u4e34\u65f6\u622a\u56fe: .\/tmp_12.jpg (\u65f6\u95f4\u70b9: 8277s)<br>\u751f\u6210\u4e34\u65f6\u622a\u56fe: .\/tmp_13.jpg (\u65f6\u95f4\u70b9: 9201s)<br>\u751f\u6210\u4e34\u65f6\u622a\u56fe: .\/tmp_14.jpg (\u65f6\u95f4\u70b9: 9687s)<br>\u751f\u6210\u4e34\u65f6\u622a\u56fe: .\/tmp_15.jpg (\u65f6\u95f4\u70b9: 10841s)<br>\u751f\u6210 4x4 \u7f29\u7565\u56fe: .\/preview.jpg<br><br># \u6307\u5b9a\u6570\u91cf\u7684tile\u6a21\u5f0f<br>root:\/root\/snapshot# .\/snapshot.sh Avengers.Endgame.2019.BluRay.1080p.x265.10bit.MNHD.mkv tile 12 3 4<br>root:\/root\/snapshot# .\/snapshot.sh Avengers.Endgame.2019.BluRay.1080p.x265.10bit.MNHD.mkv tile 4 2 2<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"429\" data-src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042553127-1024x429.jpg\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\" class=\"wp-image-6640 lazyload\" srcset=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042553127-1024x429.jpg 1024w, https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042553127-300x126.jpg 300w, https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042553127-768x321.jpg 768w, https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042553127.jpg 1080w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"429\" src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042553127-1024x429.jpg\" alt=\"\" class=\"wp-image-6640\" srcset=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042553127-1024x429.jpg 1024w, https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042553127-300x126.jpg 300w, https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042553127-768x321.jpg 768w, https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042553127.jpg 1080w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/noscript><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">\u5b8c\u6574\u811a\u672c\u5185\u5bb9<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/bin\/bash<br># \u7528\u6cd5: .\/snapshot.sh &lt;\u89c6\u9891\u8def\u5f84&gt; &lt;\u6a21\u5f0f: single|tile&gt; &#91;\u6570\u91cf] &#91;tile\u884c\u6570] &#91;tile\u5217\u6570]<br># single \u6a21\u5f0f\u4e0b\u6570\u91cf\u53ef\u9009\uff0c\u9ed8\u8ba4 3 \u5f20<br># tile \u6a21\u5f0f\u4e0b\u6570\u91cf\u3001\u884c\u6570\u3001\u5217\u6570\u53ef\u9009\uff0c\u9ed8\u8ba4 16 \u5e27\u30014x4\uff0c\u622a\u56fe\u5747\u5300\u5206\u5e03<br>&nbsp;<br>VIDEO=\"$1\"<br>MODE=\"$2\"<br>COUNT=\"$3\"<br>TILEROW=\"$4\"<br>TILECOL=\"$5\"<br>OUTDIR=\".\" &nbsp;# \u8f93\u51fa\u5f53\u524d\u76ee\u5f55<br>&nbsp;<br>if &#91; -z \"$VIDEO\" ] || &#91; -z \"$MODE\" ]; then<br>&nbsp; echo \"\u7528\u6cd5: $0 &lt;\u89c6\u9891\u8def\u5f84&gt; &lt;\u6a21\u5f0f: single|tile&gt; &#91;\u6570\u91cf] &#91;tile\u884c\u6570] &#91;tile\u5217\u6570]\"<br>&nbsp; exit 1<br>fi<br>&nbsp;<br># \u83b7\u53d6\u89c6\u9891\u65f6\u957f\uff08\u79d2\uff09<br>DURATION=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 \"$VIDEO\")<br>DURATION=${DURATION%.*}<br>&nbsp;<br>if &#91; \"$MODE\" == \"single\" ]; then<br>&nbsp; if &#91; -z \"$COUNT\" ]; then COUNT=3; fi &nbsp;# \u9ed8\u8ba4 3 \u5f20<br>&nbsp; for i in $(seq 1 $COUNT); do<br>&nbsp; &nbsp; RAND=$(shuf -i 0-$((DURATION-1)) -n 1)<br>&nbsp; &nbsp; OUT=\"$OUTDIR\/snapshot_$i.jpg\"<br>&nbsp; &nbsp; ffmpeg -ss \"$RAND\" -i \"$VIDEO\" -frames:v 1 -q:v 2 \"$OUT\" -y -loglevel quiet<br>&nbsp; &nbsp; echo \"\u751f\u6210\u72ec\u7acb\u622a\u56fe: $OUT (\u65f6\u95f4\u70b9: ${RAND}s)\"<br>&nbsp; done<br>&nbsp;<br>elif &#91; \"$MODE\" == \"tile\" ]; then<br>&nbsp; if &#91; -z \"$COUNT\" ]; then COUNT=16; fi<br>&nbsp; if &#91; -z \"$TILEROW\" ]; then TILEROW=4; fi<br>&nbsp; if &#91; -z \"$TILECOL\" ]; then TILECOL=4; fi<br>&nbsp;<br>&nbsp; TMPFILES=()<br>&nbsp;<br>&nbsp; # \u5747\u5300\u5206\u5e03\u751f\u6210\u968f\u673a\u65f6\u95f4\u70b9<br>&nbsp; INTERVAL=$((DURATION \/ COUNT))<br>&nbsp; for i in $(seq 0 $((COUNT-1))); do<br>&nbsp; &nbsp; START=$((i * INTERVAL))<br>&nbsp; &nbsp; END=$(((i+1) * INTERVAL - 1))<br>&nbsp; &nbsp; if &#91; $END -lt $START ]; then END=$START; fi<br>&nbsp; &nbsp; RAND=$(shuf -i $START-$END -n 1)<br>&nbsp; &nbsp; TMP=\"$OUTDIR\/tmp_$i.jpg\"<br>&nbsp; &nbsp; TMPFILES+=(\"$TMP\")<br>&nbsp; &nbsp; ffmpeg -ss \"$RAND\" -i \"$VIDEO\" -frames:v 1 -q:v 2 \"$TMP\" -y -loglevel quiet<br>&nbsp; &nbsp; echo \"\u751f\u6210\u4e34\u65f6\u622a\u56fe: $TMP (\u65f6\u95f4\u70b9: ${RAND}s)\"<br>&nbsp; done<br>&nbsp;<br>&nbsp; # \u4f7f\u7528 glob \u6a21\u5f0f\u751f\u6210 tile<br>&nbsp; ffmpeg -pattern_type glob -i \"$OUTDIR\/tmp_*.jpg\" -filter_complex \"tile=${TILECOL}x${TILEROW}\" -frames:v 1 \"$OUTDIR\/preview.jpg\" -y -loglevel info<br>&nbsp;<br>&nbsp; # \u68c0\u67e5\u62fc\u56fe\u662f\u5426\u751f\u6210\u6210\u529f\uff0c\u518d\u5220\u9664\u4e34\u65f6\u6587\u4ef6<br>&nbsp; if &#91; -f \"$OUTDIR\/preview.jpg\" ]; then<br>&nbsp; &nbsp; rm -f \"${TMPFILES&#91;@]}\"<br>&nbsp; &nbsp; echo \"\u751f\u6210 ${TILEROW}x${TILECOL} \u7f29\u7565\u56fe: $OUTDIR\/preview.jpg\"<br>&nbsp; else<br>&nbsp; &nbsp; echo \"\u62fc\u56fe\u751f\u6210\u5931\u8d25\uff0c\u8bf7\u68c0\u67e5 FFmpeg \u65e5\u5fd7\"<br>&nbsp; fi<br>&nbsp;<br>else<br>&nbsp; echo \"\u6a21\u5f0f\u9519\u8bef\uff0c\u53ea\u80fd\u662f single \u6216 tile\"<br>&nbsp; exit 1<br>fi<\/code><\/pre>\n","raw":"","protected":false},"excerpt":{"rendered":"<p>\u670d\u52a1\u5668\u5b89\u88c5FFmpeg FFmpeg \u53ef\u4ee5\u76f4\u63a5\u89e3\u7801\u67d0\u4e00\u5e27\u8f93\u51fa\u4e3a\u56fe\u7247\uff0c\u800c\u4e0d\u9700\u8981\u5b8c\u6574\u64ad\u653e\u3002 \u622a\u53d6\u7b2c10\u79d2\u7684\u4e00\u5e27\u4e3ajpg\u56fe\u7247\uff1a \u53c2\u6570\u8bf4\u660e &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"emotion":"","emotion_color":"","title_style":"","license":"","footnotes":""},"categories":[47],"tags":[],"class_list":["post-6637","post","type-post","status-publish","format-standard","hentry","category-ffmpeg"],"post_thumbnail_image":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042536481.jpg","content_first_image":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042536481.jpg","post_medium_image_300":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042536481.jpg","post_thumbnail_image_624":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042536481.jpg","post_frist_image":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042536481.jpg","post_medium_image":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042536481.jpg","post_large_image":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042536481.jpg","post_full_image":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042536481.jpg","post_all_images":[{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042536481-1024x429.jpg","id":"image0"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042536481-1024x429.jpg","id":"image1"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042543781-1024x429.jpg","id":"image2"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042543781-1024x429.jpg","id":"image3"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042553127-1024x429.jpg","id":"image4"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2025\/09\/20250929042553127-1024x429.jpg","id":"image5"}],"videoAdId":"","listAd":"0","listAdId":"","listAdEvery":6,"total_comments":0,"category_name":"ffmpeg","post_date":"2025-09-29","like_count":"0","praiseWord":"\u9f13\u52b1","copyright_state":"","excitationAd":"0","rewardedVideoAdId":"","detailAdId":"","detailAd":"0","enterpriseMinapp":"0","audios":[],"postImageUrl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2023\/05\/20230519082947553.jpg","avatarurls":[],"related_posts":null,"pageviews":196,"next_post_id":6669,"next_post_title":"\u4ece 0 \u5230 1\uff0c\u5b9e\u6218 SpringBoot \u6253\u9020\u8f7b\u91cf\u89c6\u9891\u63a8\u62c9\u6d41\u7cfb\u7edf","previous_post_id":6582,"previous_post_title":"ffmpeg\u4ece\u6536\u5230\u4e00\u4e2a\u89c6\u9891\u5305\u5230\u89e3\u7801\u51fa\u6765\u6574\u4e2a\u6d41\u7a0b","_links":{"self":[{"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/posts\/6637","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/comments?post=6637"}],"version-history":[{"count":1,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/posts\/6637\/revisions"}],"predecessor-version":[{"id":6641,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/posts\/6637\/revisions\/6641"}],"wp:attachment":[{"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/media?parent=6637"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/categories?post=6637"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/tags?post=6637"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}