[英]How to make .avi, .mp4 file with jpeg frames?
我正在使用IP攝像機,並且已經從攝像機獲得了Jpeg幀和音頻數據(PCM)。
現在,我想根據上述數據以.avi或.mp4格式創建視頻文件(音頻和視頻)。
我搜索了一下,我知道ffmpeg庫可以做到。 但是我不知道如何使用ffmpeg來做到這一點。
您能否建議我一些示例代碼或ffmpeg的功能來做到這一點?
如果您的目標是編寫一個c ++應用程序來為您執行此操作,請忽略此答案,我將其留在此處以供將來參考。 如果沒有,請按照以下步驟在bash中進行操作:
首先,請確保您的圖片格式正確,並且易於ffmpeg處理。 您可以將圖像復制到其他目錄:
mkdir tmp
x=1; for i in *jpg; do counter=$(printf %03d $x); cp "$i" tmp/img"$counter".jpg; x=$(($x+1)); done
將音頻數據復制到tmp目錄並編碼視頻。 假設您的相機每十秒鍾拍攝一張照片:
cd tmp
ffmpeg -i audio.wav -f image2 -i img%03d.jpg -vcodec msmpeg4v2 -r 0.1 -intra out.avi
其中-r 0.1
表示-r 0.1
的幀速率,即每10秒一幀。
這里可能出現的問題是:
grep
魔術來獲得音頻(或視頻)的長度。 即使這樣,對於較長的剪輯,同步可能仍然是一個問題。 %03d
格式將不夠用,請確保將3
更改為所需的索引長度 視頻將從更長的流中繼承其長度,您可以使用-t
開關對其進行限制:
-t duration
- Restrict the transcoded/captured video sequence to the duration specified in seconds. "hh:mm:ss[.xxx]" syntax is also supported.
Restrict the transcoded/captured video sequence to the duration specified in seconds. "hh:mm:ss[.xxx]" syntax is also supported.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.