Jeff 的 站内主页

2016
04-08

avcodec_decode_video2解码得不到图像 HOT

如下所示代码: [crayon-5e8ed0a2ec6c9405970659/] 在使用avcodec_decode_video2函数解码时经常会遇到frameFinished == 0,也就是无法得到一帧解码后的图像。有些人可能会怀疑是哪里出错了,其实这是正常的现象,ffmpeg内部解码时做了处理。处理如下: 1)该帧为B帧,由于B帧是前后参考帧,需要结合前面的I帧或者P帧,以及后面的P帧来生成完整图像,所以该帧如果是B帧,就无法立即解码....Read More >
2016
03-15

MP4解析得到的视频播放问题 HOT

MP4解析得到的视频播放问题 前段时间完成了AVI的文件解析程序,也封装了接口。这段时间一直在写MP4文件的解析程序(都没用到第三方库),已经写得差不多了,可以还原音视频帧列表,得到封装的音视数据。不过在测试播放解析得到的视频却发现了一个问题,部分MP4文件解析得到的视频可以用ffplay播放,部分不行。后来仔细对比了下视频文件内容,发现是视频编码类型导致的。 解析后的视频数据不做....Read More >
2016
02-23

AVI文件详细解析 HOT

AVI文件详细解析 最近在做视频文件的解析,需要将视频文件中封装的视频与音频解析出来,然后用自己的解码器解码。这个过程专业点叫做叫做Demultiplex,视频播放器中负责这部分的叫做Demuxer。我们平时看到的各种格式视频,比如:avi,mp4,mkv等相当于一种容器,里面包含了音视频,字幕的信息以及数据,Demuxer的工作就是解析视频文件,取出里面的音视频或者字幕送到指....Read More >
2016
01-08

如何让MFC或其他VS编译的程序支持高DPI HOT

如何让MFC或其他VS编译的程序支持高DPI 如今显示器的分辨率是越来越大,2K,4K分辨率的都很常见了。在高分屏下,我们必须对DPI进行缩放,要不显示字体会很小。一般系统默认DPI缩放级别为100%。如果改成150%,200%或者其他,我们会发现部分程序界面显示错乱,这是因为这些程序没有对高DPI进行处理。在VS中编写程序时可以很容易的做到支持DPI。 第一种方法是修改程序的Mainfest,如....Read More >
2015
12-25

解决Ubuntu下vlc无法播放文件 HOT

最近在linux下使用VLC播放器,之前都可以好好播放的,可是手贱卸载重装了一次,之后都无法播放任何文件,总是如下提示: [crayon-5e8ed0a2ee7ff952177825/] 后来使用了: [crayon-5e8ed0a2ee805631151435/] 卸载也是不行,重新安装还是会报Your input can't be opened:VLC is unable to open the MRL的错误,后来通过如下命令卸载解....Read More >
2015
12-11

我的PC软件清单 HOT

到今天win10用了快四个月了,我的5年历史老笔记本(大一时买的)还能流畅跑着,看电影,听歌,偶尔玩下单机游戏,跑VS2015都不卡。经常在网上看到有人说电脑很卡,我觉得重装系统是一个方法外,良好的软件使用习惯也很重要,要不每次重装系统不久又卡了。我觉得自己软件使用习惯还好,用了好多小众软件,这些软件比主流的强多了,而且轻巧。下面就分享下我电脑上的一些软件。 1)本地视频播放:Potplayer,比国产的暴风等强多了,强在哪里就不说了; 2)音乐播放:....Read More >
2015
11-23

使用libVLC实现的播放器:支持双击全屏 HOT

使用libVLC实现的播放器:支持双击全屏 背景 最近在学习duilib这个库,看了网上Alberl的教程,他那个仿迅雷播放器做的不错,我就直接拿来学习duilib了。不过这个播放器有个缺点,就是无法双击全屏,也就是鼠标放到libVLC播放窗口时无法响应消息,消息都被libVLC内部处理了。这对我们而言不是很方便。因为有时我们需要双击全屏,或者弹出鼠标右键菜单做一些操作。后来上网查了下,好多人遇到这....Read More >