FFmpeg

簡介與其他資料:
 http://www.mobile01.com/topicdetail.php?f=510&t=3734550

其他範例:
  http://www.mobile01.com/topicdetail.php?f=510&t=4487462


讀取單一輸入圖片

如果只有一張輸入圖片,則必須使用 -loop 1 重複讀取輸入。
當啟用 loop 選項時,你必須限制輸出長度,否則 ffmpeg 將無限編碼視訊輸出。
你可以使用 -t/-to/-shortest... 等選項來限制輸出視訊長度,方法如下。

在達到指定時間長度(1分30秒)時完成輸出:
ffmpeg -loop 1 -i image.jpg -r 30 -t 00:01:30 output.mp4

在音訊結束後完成輸出檔案:
ffmpeg -loop 1 -i image.jpg -r 30 -i song.flac -shortest output.mp4



讀取連續輸入圖片

你可以使用 * 字元或是 %Numd 來讀取多個圖片,Num 為數字的位數。

例如:
  "%d": 0, 1, 2, 3 ......
  "%3d": 000, 001, 002, 003 ......
在 CMD/BAT 中,由於 % 已既有特殊用途,若要表示 % 則必須寫為 %%

例1: -i "foo-%3d.jpg"
將會依序讀取輸入 foo-000.jpg, foo-001.jpg, foo-002.jpg, foo-003.jpg ......

例2: -i "foo-*.jpg"
此代表檔名為 "foo-" 開頭的 JPG 檔,並依檔名排序讀取

將連續圖片轉為視訊,輸出影片 30 fps,每張圖片轉為1影格(顯示 1/30 秒):
ffmpeg -i foo-%%3d.jpg -r 30 output.mp4

將輸入 FPS 設為 1/10,輸出影片 30 fps,讓每張圖片轉為連續 300 影格(顯示 10 秒):
ffmpeg -r 1/10 -i foo-%%3d.jpg -r 30 output.mp4

從管道中讀取輸入:
type "foo-*.jpg" | ffmpeg  -f image2pipe -r 1/10 -i pipe:.jpg -r 30 output.mp4


循環讀取連續輸入圖片

假設你有一組圖片
foo-00.jpg, foo-01.jpg, foo-02.jpg, foo-03.jpg ...... foo-15.jpg (最後一張)

循環讀取:
foo-00.jpg, foo-01.jpg, foo-02.jpg, foo-03.jpg ...... foo-15.jpg, foo-00.jpg, foo-01.jpg ......

在達到指定時間長度(1分30秒)時完成輸出:
ffmpeg -loop 1 -r 1/10 -i foo-%%2d.jpg -r 30 -t 00:01:30 output.mp4

在音訊結束後完成輸出檔案:
ffmpeg -loop 1 -r 1/10 -i foo-%%2d.jpg -r 30 -i song.flac -shortest output.mp4



應用範例

如果要將音樂轉為影片並加字幕
可以這麼做:
ffmpeg -loop 1 -i image.jpg -i song.flac -r 30 -pix_fmt yuv420p -vf subtitles='lyrics.ass' -c:v libx264 -c:a libfdk_aac -movflags +faststart -shortest output.mp4
好文!!!kingdragon大~感謝分享!!

改天來試試!!
不好意思,不懂程式語法,只能跟著教學不變的作動作,但是按照youtube上面的影片
https://www.youtube.com/watch?time_continue=129&v=WlY2Mubirv0&feature=emb_logo


直接輸入以下

ffmpeg -loop 1 -framerate 1 -i image.jpg -i music.mp3 -c:v libx264 -preset veryslow -crf 0 -c:a copy -shortest output.mp4

是有成功,但是,想請問,是否可以多張360圖片+一首音樂,例如10秒一張,可以的話,該如何輸入呢?
masterlink wrote:
不好意思,不懂程式語(恕刪)

kingdragon大 最近不是常上來.如果你真要做.可先用我的方法.
當然 kingdragon大 或會有更好方法.
我也是全用 FFMPEG 雖然比較笨.但效果還算滿意...
我是用20秒一張共四張.當然時間看你 mp3 長短.先看看以下影片.
别被我選中..為何又選中..
ahwaiyuen98 wrote:
kingdragon(恕刪)



謝謝ahwaiyuen98大,來研究看看
有教學文都先加分一下
kentchan wrote:
有教學文都先加分一下(恕刪)

教學不敢.01 高手多.我只是班門弄斧.

ahwaiyuen98 wrote:
kingdragon(恕刪)
謝謝ahwaiyuen98大,來研究看看
給你研究看看

(1)首先360 圖片解析度一致.如 :3000X1500加入.mp3 以下(3)相同
ffmpeg -loop 1 -framerate 1 -i image.jpg -i music.mp3 -c:v libx264 -preset veryslow -crf 0 -c:a copy -shortest output.mp4


(2) 分割 mp3 如以下 mp3 長 80秒."time 20" 20秒一段.所以分成4段.
ffmpeg -i 1.mp3 -f segment -segment_time 20 -c copy output_audio_file_d.mp3


(3) 分4次把 360 圖片加入mp3 為4個360 全景 mp4
ffmpeg -loop 1 -framerate 1 -i image.jpg -i music.mp3 -c:v libx264 -preset veryslow -crf 0 -c:a copy -shortest output.mp4


(3) 合拼4個 360 全景 mp4
https://www.mobile01.com/topicdetail.php?f=510&t=5086731&p=1
ffmpeg -f concat -i filelist.txt -c copy final.mp4


filelist.txt 內文...因為文件在同一文件夾.mp4分别改名. 不須路徑·
file 'output1.mp4'
file 'output2.mp4'
file 'output3.mp4'
file 'output4.mp4'



(4)合拼360 全景 mp4..MP3 (audio)可能會斷點...所以可以用原80秒MP3替換
a.mp3 替換視頻中的音頻..復制視頻流而無需重新編碼
ffmpeg -i v.mp4 -i a.mp3 -c:v copy -map 0:v:0 -map 1:a:0 new.mp4


如有不明白可再問
以下MP4(audio)會斷點.替換視頻中的音頻就好了.

再看看如何上傳到 youtube 或 facebook
6樓有說明.
https://www.mobile01.com/topicdetail.php?f=256&t=5988447
所有文件放在一個文件夾便可.檔名遀須要更改.
文件夾內叫出 CMD 直接在文件夾內運行
8樓有說明
https://www.mobile01.com/topicdetail.php?f=510&t=5290533
點圖放大
别被我選中..為何又選中..
ahwaiyuen98 wrote:
教學不敢.01 高手(恕刪)


謝謝ahwaiyuen98大,正在努力研究中
masterlink wrote:
謝謝ahwaiyuen98...(恕刪)

一個簡單的再給你研究..我只能做到這樣.
先把 360 圖片合拼為每張 圖片 10秒 (-r 1/10) 如果是20秒 (-r 1/20) 影格頻率 FPS=(-r 30) 的MP4(沒有音頻)
圖片檔名分别為.
image1.jpg image2.jpg image3.jpg image4.jpg
ffmpeg -r 1/10 -start_number 0 -i image%0d.jpg -c:v libx264 -r 30 -pix_fmt yuv420p video.mp4

或 -vf fps=30 代替 -r 30 你會看到有分别.正確顯示幀.
ffmpeg -r 1/10 -start_number 0 -i image%0d.jpg -c:v libx264 -vf fps=30 -pix_fmt yuv420p video.mp4

放在同一文件夾.


如果你電腦不是很快.耐心等候幾秒..
與上面效果一様
然後在視頻添加(mp3)音頻:複製無需重新編碼.....完成
ffmpeg -i video.mp4 -i audio.mp3 -codec copy -shortest output.mp4

别被我選中..為何又選中..

最後更新



終於被我一次完成. 原來只是加入" -i audio.mp3 " 便可.
7張 360 image 每張18秒 + 126秒 audio.mp3
ffmpeg -r 1/18 -start_number 0 -i image%0d.jpg -i audio.mp3 -c:v libx264 -vf "fps=25,format=yuv420p" outnew.mp4

别被我選中..為何又選中..
關閉廣告
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!