UWP开发 使用FFmpeg各种坑

 

编译FFmpeg Win10

VS2017无法使用FFmpegInterop项目自带的BuildFFmpeg.bat编译,很烦。

最后在Github上找到了一个解决方案(https://github.com/Microsoft/FFmpegInterop/issues/136)

使用vcpkg(https://github.com/microsoft/vcpkg)编译FFmpeg for Win10

clone项目:
git clone https://github.com/khouzam/vcpkg -b ffmpeg-uwp

引导工具:
cd vcpkg
bootstrap-vcpkg.bat

编译项目

vcpkg install ffmpeg:x86-uwp ffmpeg:x64-uwp ffmpeg:arm-uwp

编译完成包保存在vcpkg\packages

将packages下ffmpeg_平台-uwp文件夹复制到FFmpegInterop\ffmpeg\Build\Windows10目录下改名为相应平台

打开FFmpegWin10项目,编译,完成

 

参考资料:

https://trac.ffmpeg.org/wiki/CompilationGuide/WinRT

https://www.cnblogs.com/DaweiX/p/6435027.html

https://dotblogs.com.tw/evarichie/2016/05/09/165126

https://chensi.moe/blog/2015/11/19/winrt-custom-media/

http://validvoid.net/build-and-use-ffmpeginterop-win10/#visualstudio

.NET FFmpeg的使用

转码MP4:

ffmpeg.exe -i test.flv -c:v libx264 -strict -2 test.mp4

带分辨率转码:

ffmpeg.exe -i test.flv -c:v libx264 -strict -2 -s 640×480 test.mp4

带水印转码:

ffmpeg.exe -i test.flv -vf “movie=logo.png [watermark]; [in][watermark] overlay=10:10” -c:v libx264 -strict -2 test1.mp4

水印位置不能加路径

获取缩略图

ffmpeg.exe -i test.flv -y -f mjpeg -ss 3 -t 0.001 -s 320×240 test.jpg

水印+转码+缩略图

ffmpeg.exe -i test.flv -y -f mjpeg -ss 3 -t 0.001 -s 320×240 test1.jpg -vf “movie=logo.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:10” -c:v libx264 -strict -2 test6.mp4

FFmpeg转码后无法在线播放!!

FFMpeg转码由此得到的mp4文件中, meta信息是在文件尾部的, 而 videoview 在没有得到meta信息前不会播放文件, 因此只有等到文件完全下载完视频才会播放。解决方法很简单,下载qtfaststart.exe把meta信息移到文件头部。

下载地址:http://www.ckplayer.com/down/qt-faststart.rar。也可以到我的资源里去找,解压后用cmd运行。

用法:Usage: qt-faststart <infile.mov> <outfile.mov>。

 

 

待续

Xamarin.Forms开发编译安卓APK

选择安卓项目右键 属性

1、取消 使用共享运行时 及 使用快速部署

2、勾选 将程序集绑定到本地代码

3、勾选 启用ProGuard

4、链接选择 仅SDK程序集

完成上述操作,选择安卓项目右键 存档

存档完成后点击分发-创建密钥-另存为

完成。

ASP.NET MVC 学习01

2017/8/16晚开始学习ASP.NET MVC,在此随便记一下笔记。

学习地址:极客学院http://www.jikexueyuan.com/course/436_5.html

MVC 定义 Model-View-Controller

默认路由顺序是 controller→action→id,RouteConfig可以配置默认的路由。

新建Controller会自动新建View文件夹。

项目编译IIS Express会自动更新。

URL参数最好进行HttpUtility.HtmlEncode。

Test(string name=”123″)设置缺省值。

Razor注释:@*注释*@。

浏览器中Ctrl+F5刷新清缓存。