{"id":451,"date":"2019-03-16T16:52:45","date_gmt":"2019-03-16T16:52:45","guid":{"rendered":"http:\/\/labiol.xyz\/?p=451"},"modified":"2024-03-29T08:45:46","modified_gmt":"2024-03-29T08:45:46","slug":"ffmpeg-dzialania-na-plikach","status":"publish","type":"post","link":"https:\/\/www.labiol.xyz\/index.php\/2019\/03\/16\/ffmpeg-dzialania-na-plikach\/","title":{"rendered":"ffmpeg, dzia\u0142ania na plikach"},"content":{"rendered":"\n<p>Od czasu do czasu potrzebuj\u0119 przeprowadza\u0107 operacje na plikach muzycznych\/video typu \u0142\u0105czenie kilku plik\u00f3w w jeden, wyodr\u0119bnienie z pliku video samego audio czy obci\u0119cie pliku. ffmpeg jest wszechstronnym narz\u0119dziem jak najbardziej radz\u0105cym sobie z takimi prostymi operacjami. Mo\u017cliwo\u015bci narz\u0119dzia s\u0105 o wiele, wiele wi\u0119ksze. ffmpeg \u0142atwo daje si\u0119 oskryptowa\u0107 dzi\u0119ki czemu mo\u017ce by\u0107 u\u017cywany dla wielu plik\u00f3w jednocze\u015bnie.<\/p>\n\n\n\n<p>Przyk\u0142adowe operacje: <\/p>\n\n\n\n<p>Konkatenacja wielu plik\u00f3w mp3:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>ffmpeg -i &#8220;concat:plik1.mp3|plik2.mp3&#8221; -c copy plik_wynikowy.mp3<\/p>\n<\/blockquote>\n\n\n\n<p>Wyodr\u0119bnienie z pliku vidio audio i zapisanie do mp3, skracaj\u0105c plik o 28 pocz\u0105tkowych sekund:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p> ffmpeg -i video.mp4 -ss 00:00:28 -q:a 0 -map a plik_wynikowy.mp3<\/p>\n<\/blockquote>\n\n\n\n<p>Za\u0142\u00f3\u017cmy, \u017ce chcemy obci\u0105\u0107 pliki zawsze X sekund od ko\u0144ca. ffmpeg nie ma wbudowanej takiej opcji. Nale\u017cy w takiej sytuacji obliczy\u0107 d\u0142ugo\u015b\u0107 pliku, odj\u0105\u0107 warto\u015b\u0107 kt\u00f3ra nas interesuje i od takiej warto\u015bci obci\u0105\u0107 koniec pliku. <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p> !\/bin\/bash <\/p>\n\n\n\n<p>for filename in *<br> do<br>         echo $filename<br>         bb=<code>ffmpeg -i $filename  2&gt;&amp;1 | grep \"Duration\"| cut -d ' ' -f 4 | sed s\/,\/\/ | sed 's@\\..*@@g' | awk '{ split($1, A, \":\"); split(A[3], B, \".\"); print 3600*A[1] + 60*A[2] + B[1] }'<\/code><br>         echo $bb<br>         cc=<code>expr $bb - 56<\/code><br>         echo $cc<br>         ffmpeg -ss 00:00:29 -i $filename -t $cc -c copy cut_$filename<br> done<\/p>\n<\/blockquote>\n\n\n\n<p>W kolejnym przyk\u0142adzie za\u0142\u00f3\u017cmy, \u017ce mamy stron\u0119 na kt\u00f3rej linki s\u0105 &#8220;zamaskowane&#8221; w jakim\u015b javascript albo innym j\u0119zyku. Takie linki nie pozwalaj\u0105 wget na dowolne \u015bci\u0105ganie stron w trybie rekurencyjnym. Za\u0142\u00f3\u017cmy te\u017c, \u017ce na podstronach s\u0105 pliki pdf i mp3 kt\u00f3re chcieliby\u015bmy pobra\u0107. W\u00f3wczas mo\u017cna pobra\u0107 \u017ar\u00f3d\u0142o strony i spr\u00f3bowa\u0107 wydoby\u0107 z niego linki w nast\u0119puj\u0105cy spos\u00f3b:<br><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>cat zrodlo_strony.txt | grep &#8220;\/en\/tekstZLinkuKtorySiePowtarza&#8221; &gt; linki_t.txt<\/p>\n\n\n\n<p>cut -d &#8216;&#8221;&#8216; -f2 &lt; linki_t.txt | sed &#8216;s\/^\/https\\:\\\/\\\/www.domena.com\/&#8217; &gt; linki.txt<br> while read p; do wget -nd -r -A .pdf,.mp3 &#8211;mirror &#8211;wait=3 &#8211;random-wait -e robots=off $p; done &lt; linki.txt<\/p>\n<\/blockquote>\n\n\n\n<p> Je\u015bli linki mamy w pliku i chcemy pobra\u0107 je wszystkie (ka\u017cdy link w osobnej linii) to:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>wget -nd -r -A .pdf,.mp3 &#8211;mirror &#8211;wait=3 &#8211;random-wait -e robots=off &#8211;input .\/lista4.txt<\/p>\n<\/blockquote>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Another example is converting file downloaded from the Internet in wbem format, you can use the following format:<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>find . -maxdepth 1 -type f -iname &quot;*.webm&quot; | xargs -I % ffmpeg -i \u201c%\u201d -c:v libx264 -c:a aac \u201c%\u201d.mp4<\/code><\/pre><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Od czasu do czasu potrzebuj\u0119 przeprowadza\u0107 operacje na plikach muzycznych\/video typu \u0142\u0105czenie kilku plik\u00f3w w jeden, wyodr\u0119bnienie z pliku video samego audio czy obci\u0119cie pliku. ffmpeg jest wszechstronnym narz\u0119dziem jak najbardziej radz\u0105cym sobie z takimi prostymi operacjami. Mo\u017cliwo\u015bci narz\u0119dzia s\u0105 o wiele, wiele wi\u0119ksze. ffmpeg \u0142atwo daje si\u0119 oskryptowa\u0107 dzi\u0119ki &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[14,8],"class_list":["post-451","post","type-post","status-publish","format-standard","hentry","category-linux","tag-ffmpeg","tag-linux"],"_links":{"self":[{"href":"https:\/\/www.labiol.xyz\/index.php\/wp-json\/wp\/v2\/posts\/451","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.labiol.xyz\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.labiol.xyz\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.labiol.xyz\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.labiol.xyz\/index.php\/wp-json\/wp\/v2\/comments?post=451"}],"version-history":[{"count":6,"href":"https:\/\/www.labiol.xyz\/index.php\/wp-json\/wp\/v2\/posts\/451\/revisions"}],"predecessor-version":[{"id":1282,"href":"https:\/\/www.labiol.xyz\/index.php\/wp-json\/wp\/v2\/posts\/451\/revisions\/1282"}],"wp:attachment":[{"href":"https:\/\/www.labiol.xyz\/index.php\/wp-json\/wp\/v2\/media?parent=451"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.labiol.xyz\/index.php\/wp-json\/wp\/v2\/categories?post=451"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.labiol.xyz\/index.php\/wp-json\/wp\/v2\/tags?post=451"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}