日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android bmp合成mpeg4,FFmpeg 图片合成视频

發布時間:2023/12/8 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android bmp合成mpeg4,FFmpeg 图片合成视频 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

知識準備

FFmpeg將多張圖片合成視頻,視頻的總幀數:總幀數 = duration * fps ,duration是我們設定的視頻的長度,fps是視頻每秒的幀數。

對于圖片文件是沒有幀率的概念,FFmpeg默認情況下一秒25張圖片成像合成視頻。因此FFmpeg提供-framerate還有-r設置輸入的視頻幀率,-r 8說明每秒鐘將8張圖片合成視頻。設置了輸入幀率之后,如果輸出幀率沒有指定,輸出幀率將跟輸入幀率保持一致

場景

將bmp圖片合成視頻

ffmpeg -r 8 -i ./RecordTemp/%d.bmp? -vcodec mpeg4 test.mp4

ffmpeg -r 8 -i? %d.bmp -vcodec libx264 test.mp4

其中-r 和-framerate 都是代表幀率(這個屬性屬于圖片的屬性,需要放在圖片之前)

1)控制視頻幀率

-r fps 幀率,可以指定兩個幀率,輸入幀率,輸出幀率;

輸入幀率:-i之前,設定讀入幀率,比如 -r 0.5 ,也就是說1秒要播0.5個圖片,那么一個圖也就是要播2s;

輸出頻率:-i之后,真正的輸出視頻播放幀率,不寫話,是默認和輸入頻率一樣。比如設 -r 30 ,對應上面的設定,一個圖播2s,那么輸出文件播放時,這2s內,都是這張圖,但是播放了60幀

2)圖片合成視頻,然后視頻拆分成圖片數量對應不上

指令如下:

ffmpeg? -i "D:/ffmpeg/RecordTemp/%06d.bmp" -vcodec mpeg4 -r 20 D:/ffmpeg/video5.avi

ffmpeg -i video5.avi? -f image2 image-%07d.png

解答:-r 20 放在-i之后指定的是輸出視頻幀率,輸入幀率默認情況下是25,所以拆分之后跟原始圖片數量對應不上

解決方案:ffmpeg -r 20 -i "D:/ffmpeg/RecordTemp/%06d.bmp" -vcodec mpeg4? D:/ffmpeg/video5.avi

3)輸出的視頻畫面質量下降,原因:影響視頻質量的最重要因素是視頻碼率,輸出視頻的碼率是默認的,只有200kbits/s

解決方案:修改默認的視頻碼率屬性-b:v

ffmpeg -r 20? -i "D:/ffmpeg/RecordTemp/%06d.bmp" -vcodec mpeg4 -b:v 6000k D:/ffmpeg/video5.avi

注意:當不清楚輸出碼率應該設置為多少,可以指定一個比較大的數字

4)指定從拿一張圖片開始合成視頻

ffmpeg -start_number 500 -i pano%d.jpg video.avi

備注下

-t duration

用做輸入選項(在-i之前),是限制讀取輸入文件的的時長;

用做輸出選項(before an output url),超過這個時間停止寫輸出文件;

比如:循環讀取一個輸入文件時(-loop 1),當到時間就會停止輸出,生成一個duration時長的視頻。但是如果沒有循環選項,而且輸入文件短于這個時長時,就會隨著輸入文件結束就結束,生成視頻,視頻時長小于duration。所以我們可以看出 -t 并不僅僅是輸出文件時長。

當用“管道”時,也不太一樣,管道讀了之后,里面內容就沒了,所以沒持續的輸入,這個-loop,-t 都是“不起作用的”,除非管道一直有內容。

ffmpeg -threads2 -y -r 10 -i /tmpdir/image%04d.jpg -i audio.mp3 -absf aac_adtstoasc output.mp4

參數的解釋含義:

-threads 2 以兩個線程進行運行, 加快處理的速度。

-y 對輸出文件進行覆蓋

-r 10 fps設置為10幀/秒(不同位置有不同含義,后面再解釋)

-i /tmpdir/image%04d.jpg 輸入圖片文件,圖片文件保存為 image0001.jpg image0002.jpg ….

-i audio.mp3 輸入的音頻文件

-absf aac_adtstoasc 將結果的音頻格式轉為faac格式時需要這個選項。將音頻格式轉為faac是因為在iphone上某些音頻格式的視頻無法播放,例如mp3. 但faac格式的音頻的視頻在iphone上可以播放。-absf 的意思是設置一個bitstream filter進行某些轉換??梢杂胒fmpeg -bsfs 查看所有支持的bitstream filter。 bitstream filter和 aac_adtstoasc的具體含義我也說不上。但是如果不用這個選項又會導致轉換失敗。

記錄

bmp轉換失敗:

原因:提供的bmp圖片文件,實際上是png格式的圖片文件,經過批處理修改后綴名稱,解決問題

排查過程:

1)通過Windows畫圖工具,重新保存成bmp文件,合成視頻成功

2)通過Windows畫圖工具,重新另存為jpg文件,合成視頻成功

說明是文件格式的問題Microsoft?Windows?[版本?10.0.18363.1316]

(c)?2019?Microsoft?Corporation。保留所有權利。

F:\test\test_old\store>ffmpeg?-i?test_%d.bmp?-vcodec?mpeg4?test.avi

ffmpeg?version?git-2020-08-16-5df9724?Copyright?(c)?2000-2020?the?FFmpeg?developers

built?with?gcc?10.2.1?(GCC)?20200805

configuration:?--enable-gpl?--enable-version3?--enable-sdl2?--enable-fontconfig?--enable-gnutls?--enable-iconv?--enable-libass?--enable-libdav1d?--enable-libbluray?--enable-libfreetype?--enable-libmp3lame?--enable-libopencore-amrnb?--enable-libopencore-amrwb?--enable-libopenjpeg?--enable-libopus?--enable-libshine?--enable-libsnappy?--enable-libsoxr?--enable-libsrt?--enable-libtheora?--enable-libtwolame?--enable-libvpx?--enable-libwavpack?--enable-libwebp?--enable-libx264?--enable-libx265?--enable-libxml2?--enable-libzimg?--enable-lzma?--enable-zlib?--enable-gmp?--enable-libvidstab?--enable-libvmaf?--enable-libvorbis?--enable-libvo-amrwbenc?--enable-libmysofa?--enable-libspeex?--enable-libxvid?--enable-libaom?--enable-libgsm?--enable-librav1e?--enable-libsvtav1?--disable-w32threads?--enable-libmfx?--enable-ffnvcodec?--enable-cuda-llvm?--enable-cuvid?--enable-d3d11va?--enable-nvenc?--enable-nvdec?--enable-dxva2?--enable-avisynth?--enable-libopenmpt?--enable-amf

libavutil??????56.?58.100?/?56.?58.100

libavcodec?????58.100.100?/?58.100.100

libavformat????58.?51.100?/?58.?51.100

libavdevice????58.?11.101?/?58.?11.101

libavfilter?????7.?87.100?/??7.?87.100

libswscale??????5.??8.100?/??5.??8.100

libswresample???3.??8.100?/??3.??8.100

libpostproc????55.??8.100?/?55.??8.100

[bmp?@?0000024bbbb5fd00]?bad?magic?number

Last?message?repeated?7?times

[image2?@?0000024bbbb5ddc0]?decoding?for?stream?0?failed

[image2?@?0000024bbbb5ddc0]?Could?not?find?codec?parameters?for?stream?0?(Video:?bmp,?none):?unspecified?size

Consider?increasing?the?value?for?the?'analyzeduration'?(0)?and?'probesize'?(5000000)?options

Input?#0,?image2,?from?'test_%d.bmp':

Duration:?00:00:00.32,?start:?0.000000,?bitrate:?N/A

Stream?#0:0:?Video:?bmp,?none,?25?fps,?25?tbr,?25?tbn,?25?tbc

Stream?mapping:

Stream?#0:0?->?#0:0?(bmp?(native)?->?mpeg4?(native))

Press?[q]?to?stop,?[?]?for?help

[bmp?@?0000024bbbb60500]?bad?magic?number

Error?while?decoding?stream?#0:0:?Invalid?data?found?when?processing?input

[bmp?@?0000024bbbb60500]?bad?magic?number

Error?while?decoding?stream?#0:0:?Invalid?data?found?when?processing?input

[bmp?@?0000024bbbb60500]?bad?magic?number

Error?while?decoding?stream?#0:0:?Invalid?data?found?when?processing?input

[bmp?@?0000024bbbb60500]?bad?magic?number

Error?while?decoding?stream?#0:0:?Invalid?data?found?when?processing?input

[bmp?@?0000024bbbb60500]?bad?magic?number

Error?while?decoding?stream?#0:0:?Invalid?data?found?when?processing?input

[bmp?@?0000024bbbb60500]?bad?magic?number

Error?while?decoding?stream?#0:0:?Invalid?data?found?when?processing?input

[bmp?@?0000024bbbb60500]?bad?magic?number

Error?while?decoding?stream?#0:0:?Invalid?data?found?when?processing?input

[bmp?@?0000024bbbb60500]?bad?magic?number

Error?while?decoding?stream?#0:0:?Invalid?data?found?when?processing?input

Cannot?determine?format?of?input?stream?0:0?after?EOF

Error?marking?filters?as?finished

Conversion?failed!

總結

以上是生活随笔為你收集整理的android bmp合成mpeg4,FFmpeg 图片合成视频的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。