2017-09-04 53 views
0

在Android上使用Ffmpeg從單個圖像合成視頻並與音頻文件合併,它的作品,但輸出視頻不尋求任何時間戳 前 - 總是從0:00開始,在尋找視頻前,它只是從頭開始重新開始整個視頻。ffmpeg使用單一圖像和音頻文件,但輸出視頻不可搜索(即使向前搜索,也只能從0:00開始恢復)

我使用的命令是 -

-y -framerate 30 -i "+ImagePath+" -i "+AudioPath+" -vsync vfr -c:v libx264 -codec:a copy -pix_fmt yuv420p -crf 23 "+OutputVideoPath 

可以這是由於只有單個幀? (視頻中的一個圖像) 如果是這樣,可以使用什麼將單個圖像轉換爲可搜索的視頻。

+0

是您的音頻文件AAC格式?如果沒有,則嘗試不使用-codec:copy。試試看:'-y -framerate 30 -i「+ ImagePath +」-i「+ AudioPath +」-c:v libx264 -pix_fmt yuv420p -crf 18「+ OutputVideoPath'也檢查你的結尾'」+ OutputVideoPath'它應該是像那樣? –

+0

@ VC.One使用不帶'-codec:copy'的查詢,它仍然無法產生所需的結果。加上它使這個過程真的很慢。請幫助我卡住了。 –

+0

MP4預計會有AAC音頻編解碼器。確保您的輸入是AAC格式(然後可以只是'c:副本'),否則它會從MP3轉換爲AAC(需要時間)。無論何時,在混合的A + V數據中,如果凍結視頻或不尋找它等問題意味着聲音部分導致問題。即使你選擇MP3,確保它是**立體聲**,在** 16位**和採樣率** 44 **。1khz或** 48 ** khz。我將在FFmpeg後面測試你的命令 –

回答

0

該命令將用於製作可搜索的MP4(使用來自圖像文件和MP3音頻的輸入)。

ffmpeg -y -i AUDIO.file -f image2 -loop 1 -r 2 -i IMAGE.file -shortest -c:a copy -c:v libx264 -crf 18 -framerate 30 -preset veryfast -movflags +faststart OUTPUT.mp4 

只需更換AUDIO.fileIMAGE.fileOUTPUT.mp4與您的自定義文件名。

在你的Android代碼試試這個:

-y -i "+AudioPath+" -f image2 -loop 1 -r 2 -i "+ImagePath+" -shortest -c:a copy -c:v libx264 -crf 18 -framerate 30 -preset veryfast -movflags +faststart "+OutputVideoPath+" 

嘗試建立你的代碼是這樣的:

"-y -i "+AudioPath+" -f image2 -loop 1 -r 2 -i "+ImagePath+" -shortest -c:a copy -c:v libx264 -crf 18 -framerate 30 -preset veryfast -movflags +faststart "+OutputVideoPath 
+1

將輸入「-r」更改爲「-framerate」,將輸出「-framerate」更改爲「-r」。 – LordNeckbeard

+0

@ VC.One無法將選項值「0x0」解析爲圖像大小 無法解析選項值「-1」作爲像素格式 無法解析選項值「0x0」作爲圖像大小 將選項video_size設置爲值0x0時出錯。將選項應用於過濾器時出錯。 打開過濾器時出錯! –

+0

我在桌面命令行上使用了FFmpeg,並且我有**沒有錯誤**。是否有可能你顯示的代碼示例應該已經開始:'「-y -i」+ AudioPath'等......? **查看更新**。如果仍然出現錯誤,請顯示此新命令的完整日誌。 –