XP下使用FFMPEG(API和exe)遇到的问题和解决方法。
生活随笔
收集整理的這篇文章主要介紹了
XP下使用FFMPEG(API和exe)遇到的问题和解决方法。
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
XP下使用FFMPEG(API和exe)遇到的問題和解決方法。
- 1、需求背景
- 2、遇到的問題
- 3、解決方法
- 下載鏈接
1、需求背景
因為最近接到項目上的一個需求,就是在MP4(H264編碼)文件里疊加指定字符,于是就想到了使用FFMPEG來解決。
2、遇到的問題
從理論上完全是行得通的(FFMPEG 4.x):
- 對MP4文件解碼 ;
- 將視頻幀推入濾鏡處理,獲取輸出視頻幀;
- 編碼寫文件。
問題: - XP下不支持 FFMPEG 4.x,系統庫報錯,“無法定位程序輸入點XXX于動態鏈接庫KERNEL32.dll”,找了KERNEL32.dll并且用Depends看了能找到缺少的函數,拷貝到程序運行目錄下也不能解決,拷貝到系統System32下也不能解決。最關鍵的是現在下載FFMPEG Shared的地方居然關掉了!!!難道要自己下源碼編譯?伸手黨可不做這么麻煩的事情。
3、解決方法
- 找低版本的FFMPEG代替。找了一天才找到了一個FFMPEG 3.X版本的, 放到XP里面運行FFMPEG.exe,還是報錯,發現可能是XP下的一些C++函數不適用,比如——vsnprintf_s,…,下載一個叫fixff.cmd的處理命令,放到DLL的目錄下雙擊運行,發現其實就是修改DLL里面這些C++接口兼容到XP。
- 接下來又是運行FFMPEG.exe,還是報錯,仍然有不兼容的C接口,按道理不應該啊,就懷疑是FFMPEG.exe本身使用了這些不兼容XP的C接口,fixff.cmd只修改了DLL的并沒有動FFMPEG.exe,然后就自己做了一個DEMO,再運行,果然可以,至此已經十分接近成功了。
- 但是打開輸入輸出文件的時候,總是返回負數,結果發現3版本還是需要初始化操作(4.x已經不需要初始化了)。 然后在使用avfiter里面的avfilter_graph_create_filter時候,報錯了,看了參數信息都沒錯,就像到上面fixff.cmd修改了DLL里面的一些C接口,可能是這個原因,就只把avfiter.dll這個動態庫拷貝回來,完美解決。不容易,研究了一天。
下載鏈接
鏈接: https://download.csdn.net/download/qq_27731413/13189174.
總結
以上是生活随笔為你收集整理的XP下使用FFMPEG(API和exe)遇到的问题和解决方法。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 腾讯员工举报漏洞被逮捕,“白帽子”的行为
- 下一篇: bjui刷新当前页签