顯示具有 ffmpeg 標籤的文章。 顯示所有文章
顯示具有 ffmpeg 標籤的文章。 顯示所有文章

使用 ffmpeg 下載 m3u8 的影片檔





使用 ffmpeg 下載 m3u8 的影片檔

現在越來越多網站使用了像 m3u8 類的串流格式檔案,在這裡我們不提串流檔案的好處,來討論如果需要下載這類的影片做為素材時應如何處理。現在已經有些軟體有提供專用來下載 m3u8 的影像檔,但其實使用 linux 的我們,在最常使用的轉檔工具 ffmpeg 就可以處理這個問題,並不需要另外安裝其他的軟體。而且是相當簡單的指令,以下來看一下。   首先要先取得 m3u8 的位罝,不論是檔案還是網址都是可以的,例如

# ffmpeg -i "m3u8網址" -c copy media.mp4

只要沒有特殊其他的保護機制,這樣就可以透過 ffmpeg 將 m3u8 的網址下載下來成 media.mp4 的影像檔了。有時會需要指定 headers 和 user agent,則可以利用 -user_agent 和 -headers 二個參數來代入即可。

用ffmpeg來切割mp3

常在聽mp3或其他格式音樂的朋友,有時會有特別喜歡的片段,例如副歌的部份會想拿來做手機的鈴聲。這時候就需要一些處理音效的軟體,例如之前提過的Audacity。其實還有更簡便的方法,只要系統中有安裝好的ffmpeg,一行指令就OK了,相當簡單。讓我們分成兩步驟來完成他吧!

第一步先用播放軟體將想要處理的音樂檔案聽一次,把想獨立出來部份的時間記下來,看是幾分幾秒到幾分幾秒。記好後,第一步也就完成了。

第二步就是下指令了。


# ffmpeg -i input.mp3 -ss hh:mm:ss -t hh:mm:ss -acodec copy output.mp3

參數說明:
-ss : 指定從那裡開始
-t : 指定到那裡結束
-acodec copy : 編碼格式和來源檔案相同(就是mp3)


這方法不只是MP3可以用,其他的許多格式也都適用,只是輸出檔案的副檔名就要跟著改一改了。

以下舉個例子,如果我想把aa.mp3中的1分12秒到1分42秒的地方切出來,然後存成bb.mp3,指令如下


# ffmpeg -i aa.mp3 -ss 00:01:12 -t 00:01:42 -acodec copy bb.mp3


就是這麼簡單,而且處理速度超級快。一下子完成了。


ffmpeg常用轉檔參數

把影像檔案轉換成avi格式

# ffmpeg -i filename.flv -f avi -vcodec libxvid -acodec libmp3lame -ar 22050 filename.avi
參數說明:
-i : 指輸入的檔案名稱,只要系統中有相對應的codec,就能使用多種格式。
-f : 強迫輸出的檔案格式。
-vcodec : 指定影像的編碼格式,這裡的libxvid指的是一般所說的xvid。
-acodec : 指定聲音的編碼格式,libmp3lame就是常用的mp3格式。
-ar : 指定聲音的取樣頻率,一般預設是44100。(因為我是用在手機上,所以設比較低。)


把影像檔案轉換成3gp格式


# ffmpeg -i filename.avi -s qcif -vcodec h263 -acodec libfaac -ac 1 -ar 8000 -r 25 -ab 32  filename.3gp

參數說明:
-i : 指輸入的檔案名稱。
-s : 畫面的解析度。qcif指的是176x144,直接輸入長和寬也可以,格式是 wxh。
-vcodec : 指定影像的編碼格式。
-acodec : 指定聲音的編碼格式,libfaac就是指aac格式。
-ac : 設定聲音的聲道數。1指是的單聲道。
-ar : 指定聲音的取樣頻率。
-r : 設定fps。
-ab : 指定聲音的bitrate。


把影像檔轉換成flv格式


# ffmpeg -i filename.mpg -ab 56 -ar 22050 -b 500 -r 15 filename.flv

參數說明:
-i : 指輸入的檔案名稱。
-ab : 指定聲音的bitrate。
-ar : 指定聲音的取樣頻率。
-b : 指定影像的bitrate
-r : 設定fps。



將聲音檔案轉成mp3


# ffmpeg -i filename.wav -acodec libmp3lame -ar 44100 -ab 128k filename.mp3
參數說明:
-i : 指輸入的檔案名稱。
-ar : 指定聲音的取樣頻率。
-ab : 指定聲音的bitrate。
-acodec : 指定聲音的編碼格式,libmp3lame就是常用的mp3格式。如果輸出的檔案有指定mp3的話,其實這裡省略沒關係。
如果覺得原本的聲音檔音量太小的話,可以再加一個 -vol 200 的參數,會讓輸出的mp3音量變成200%,就兩倍大聲。200是百分比,可以隨意調整的。


以上幾個是很常用的格式,整理下來做成筆記,也供各位需要轉檔的人參考。
話說回來,在windows下,每次要轉檔都得想看看要找什麼軟體,比較好用的大都是要花錢買的,不過如果會用ffmpeg的話,差不多快天下無敵了,ffmpeg提供的轉檔格式和設定多到難以捉摸。現在想到要轉檔時,反而想到的是找找看ffmpeg的參數怎麼下。

當然也是有人做了一些介面來操作ffmpeg,不過對於喜歡簡便又不用裝太多東西的我來說,寫成shell script就很好用了。

也可以輸入影片檔案,指定輸出為聲音檔案。ffmpeg會幫你把影片中的聲音分離出來。


Docker SIGILL: illegal instruction 問題除錯記錄

Docker SIGILL: illegal instruction 問題除錯記錄 最近在一台平常執行得好好的伺服器上,遇到一個讓人頭痛的 Docker 問題。 原本 Portainer 和其他容器都可以正常運行,但在系統突然當機後,所有容器在啟動時都出現以下錯誤訊息: d...