{"id":463,"date":"2019-07-19T23:10:53","date_gmt":"2019-07-19T15:10:53","guid":{"rendered":"https:\/\/broso.synology.me\/wordpress\/?p=463"},"modified":"2021-07-19T00:48:59","modified_gmt":"2021-07-18T16:48:59","slug":"%e4%bd%bf%e7%94%a8-ffmpeg-%e5%90%88%e4%bd%b5-gopro-hero-7-%e5%bd%b1%e5%83%8f","status":"publish","type":"post","link":"https:\/\/cychien.tw\/wordpress\/2019\/07\/19\/%e4%bd%bf%e7%94%a8-ffmpeg-%e5%90%88%e4%bd%b5-gopro-hero-7-%e5%bd%b1%e5%83%8f\/","title":{"rendered":"\u4f7f\u7528 ffmpeg \u5408\u4f75 GoPro Hero 7 \u5f71\u50cf"},"content":{"rendered":"<p>\u9019\u6b21\u70ba\u4e86\u53bb\u65e5\u672c\u6771\u4eac\u8fea\u58eb\u5c3c\uff0c\u7279\u5730\u8cb7\u4e86 GoPro Hero 7 Black \u4f86\u9304\u904a\u884c\u7684\u756b\u9762\u3002<\/p>\n<p>\u4e0d\u904e\u56de\u4f86\u53f0\u7063\u4ee5\u5f8c\uff0c\u627e\u4e86\u5f88\u4e45\u4e26\u6c92\u6709\u627e\u5230\u9069\u5408\u7684\u8996\u7a97\u4ecb\u9762\u8edf\u9ad4\u53ef\u4ee5\u4e0d\u9700\u8981\u8f49\u63db\u6a94\u6848\u683c\u5f0f\uff0c\u76f4\u63a5\u5c07 GoPro Hero 7 \u6240\u7522\u751f\u7684 HEVC \u5f71\u50cf\u6a94\u9032\u884c\u5408\u4f75\uff0c\u5f8c\u4f86\u9084\u662f\u7528 ffmpeg + script \u4f86\u89e3\u6c7a\u6bd4\u8f03\u5feb\uff0c\u4e0d\u4f46\u5408\u4f75\u901f\u5ea6\u5feb\uff0c\u800c\u4e14\u56e0\u70ba\u6c92\u6709\u9032\u884c\u8f49\u6a94\uff0c\u756b\u8cea\u5b8c\u5168\u6c92\u6709\u640d\u5931\u3002\u6700\u8fd1\u8166\u5bb9\u91cf\u8d8a\u4f86\u8d8a\u5c0f\uff0c\u9084\u662f\u7b46\u8a18\u4e00\u4e0b\uff0c\u514d\u5f97\u4e4b\u5f8c\u53c8\u8981\u91cd\u65b0\u559a\u8d77\u8a18\u61b6\u3002<\/p>\n<p><!--more--><\/p>\n<ul>\n<li>\u4e0b\u8f09 ffmpeg<\/li>\n<\/ul>\n<p>\u5f9e\u9019\u5152 <a href=\"https:\/\/ffmpeg.org\/download.html\">https:\/\/ffmpeg.org\/download.html<\/a>\uff0c\u627e static \u6216 shared \u7248\u672c\u3002\u4e0b\u8f09\u5b8c\u7562\u89e3\u958b\uff0c\u6211\u662f\u653e\u5728 ~\/bin \u4e0b<\/p>\n<ul>\n<li>\u5beb\u500b shell script.<\/li>\n<\/ul>\n<pre class=\"p1\"><span class=\"s1\">#!\/bin\/bash<\/span>\r\n<span class=\"s1\">if [ $# -lt 2 ]; then<\/span>\r\n<span class=\"s1\">    echo \"$0 &lt;Output_merge_file&gt;&gt; &lt;video 1&gt; &lt;video 2&gt; ... &lt;video 10&gt;\"<\/span>\r\n<span class=\"s1\">    exit 0<\/span>\r\n<span class=\"s1\">fi<\/span>\r\n\r\n# \u5408\u4f75\u6e05\u55ae\u7684\u6a94\u540d\uff0c\u6211\u653e\u5728 $TMPDIR \u76ee\u9304\u4e0b\u7684 gopro_list.txt\r\n<span class=\"s1\">FILE_LIST=$TMPDIRgopro_list.txt<\/span>\r\n<span class=\"s1\">if [ -f $FILE_LIST ]; then<\/span>\r\n<span class=\"s1\">    rm $FILE_LIST<\/span>\r\n<span class=\"s1\">fi<\/span>\r\n\r\n<span class=\"s1\">OUTPUT_FILE=$1\r\n<\/span># \u7522\u751f\u5408\u4f75\u6a94\u6848\u6e05\u55ae\r\n<span class=\"s1\">IDX=0<\/span>\r\n<span class=\"s1\">for args in $@<\/span>\r\n<span class=\"s1\">do\r\n<\/span># \u7b2c\u4e00\u500b\u53c3\u6578 $1 \u662f\u5408\u4f75\u5f8c\u7684\u6a94\u540d\uff0c\u7121\u9808\u7522\u751f\u5230\u6a94\u6848\u6e05\u55ae\u4e2d\r\n<span class=\"s1\">    IDX=$((IDX+1))<\/span>\r\n<span class=\"s1\">    if [ $IDX -eq 1 ]; then<\/span>\r\n<span class=\"s1\">        continue<\/span>\r\n<span class=\"s1\">    fi<\/span>\r\n\r\n<span class=\"s1\">    echo \"file $args\" &gt;&gt; $FILE_LIST<\/span>\r\n<span class=\"s1\">done<\/span>\r\n\r\n# \u6307\u5b9a ffmpeg \u6307\u4ee4\u4f4d\u7f6e\r\n<span class=\"s1\">FFMPEG_CMD=~\/bin\/ffmpeg\r\n\r\n<\/span># \u958b\u59cb\u5408\u4f75\r\n# -f concat \u4f9d\u5e8f\u6a94\u6848\u6e05\u55ae\u6307\u5b9a\u6a94\u540d\u9032\u884c\u5408\u4f75\r\n# -i &lt;filename&gt; \u6307\u5b9a\u5408\u4f75\u6a94\u6848\u6e05\u55ae\u7684\u6a94\u540d\uff0c\u6bcf\u4e00\u884c\u7684\u683c\u5f0f\u70ba \"file &lt;videoname&gt;\"\r\n# -c copy \u6307\u5b9a video \/ audio codec \u5747\u76f4\u63a5\u8907\u88fd\u5373\u53ef\uff0c\u4e0d\u8981\u9032\u884c\u8f49\u63db\u683c\u5f0f\r\n# \u6700\u5f8c\u6307\u5b9a\u8f38\u51fa\u6a94\u540d\u5373\u53ef\r\n<span class=\"s1\">$FFMPEG_CMD -f concat -i $FILE_LIST -c copy $OUTPUT_FILE<\/span><\/pre>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-465 lazyload\" data-src=\"https:\/\/broso.synology.me\/wordpress\/wp-content\/uploads\/2019\/07\/gopro_merge.png\" alt=\"\" width=\"1225\" height=\"1132\" data-srcset=\"https:\/\/cychien.tw\/wordpress\/wp-content\/uploads\/2019\/07\/gopro_merge.png 1225w, https:\/\/cychien.tw\/wordpress\/wp-content\/uploads\/2019\/07\/gopro_merge-300x277.png 300w, https:\/\/cychien.tw\/wordpress\/wp-content\/uploads\/2019\/07\/gopro_merge-768x710.png 768w, https:\/\/cychien.tw\/wordpress\/wp-content\/uploads\/2019\/07\/gopro_merge-1024x946.png 1024w\" data-sizes=\"(max-width: 1225px) 100vw, 1225px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1225px; --smush-placeholder-aspect-ratio: 1225\/1132;\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u9019\u6b21\u70ba\u4e86\u53bb\u65e5\u672c\u6771\u4eac\u8fea\u58eb\u5c3c\uff0c\u7279\u5730\u8cb7\u4e86 GoPro Hero 7 Black \u4f86\u9304\u904a\u884c\u7684\u756b\u9762\u3002 \u4e0d\u904e\u56de\u4f86\u53f0\u7063\u4ee5\u5f8c\uff0c [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":465,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,13],"tags":[35,34],"class_list":["post-463","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ittechlinux","category-myeos","tag-ffmpeg","tag-gopro-hero-7-black"],"_links":{"self":[{"href":"https:\/\/cychien.tw\/wordpress\/wp-json\/wp\/v2\/posts\/463","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cychien.tw\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cychien.tw\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cychien.tw\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cychien.tw\/wordpress\/wp-json\/wp\/v2\/comments?post=463"}],"version-history":[{"count":5,"href":"https:\/\/cychien.tw\/wordpress\/wp-json\/wp\/v2\/posts\/463\/revisions"}],"predecessor-version":[{"id":469,"href":"https:\/\/cychien.tw\/wordpress\/wp-json\/wp\/v2\/posts\/463\/revisions\/469"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cychien.tw\/wordpress\/wp-json\/wp\/v2\/media\/465"}],"wp:attachment":[{"href":"https:\/\/cychien.tw\/wordpress\/wp-json\/wp\/v2\/media?parent=463"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cychien.tw\/wordpress\/wp-json\/wp\/v2\/categories?post=463"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cychien.tw\/wordpress\/wp-json\/wp\/v2\/tags?post=463"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}