小编S B*_*S B的帖子

AVFrame到QImage的高效转换

我需要在基于Qt的应用程序中从视频中提取帧.使用ffmpeg库我能够将帧作为AVFrames获取,我需要将其转换为QImage以在我的应用程序的其他部分中使用.这种转换需要高效.到目前为止似乎sws_scale()是正确的功能使用,但我不确定要指定什么源和目标像素格式.

qt ffmpeg

6
推荐指数
2
解决办法
4521
查看次数

如何在QWidget下载时渲染渐进式JPEG?

使用Qt,在QWidget上渲染完全下载的图像非常简单.但是,我想在获取时呈现部分下载的渐进式jpg(或png).

qt

6
推荐指数
1
解决办法
347
查看次数

使用libav过滤器缩放视频时出错

我需要批量处理一堆视频,将它们的高度扩展到240,保持纵横比相同.几乎完成工作的命令是:

$ avconv -threads 4 -ss 0.0 -i input.avi \
-map 0:0,0:0 -map 0:1,0:1 -vf "scale=-1:240" -y -f mpegts \
-async -1 -vcodec libx264 -vcodec libx264 -flags2 +fast \
-flags +loop -g 30 -bufsize 1024k \
-b 200k -bt 220k -qmax 48 -qmin 2 -r 20 -acodec libmp3lame \
-ab 44k -ar 44100 -ac 2 output.ts
Run Code Online (Sandbox Code Playgroud)

你可以看到,有趣的部分是 -vf "scale=-1:240"

这适用于缩放输出宽度为偶数的视频.否则,我收到以下错误消息:

[libx264 @ 0x7fc4f8821e00] width not divisible by 2 (341x240)
Run Code Online (Sandbox Code Playgroud)

我该如何克服这个问题?

编辑:根据这个链接,我尝试使用-vf "scale=trunc(oh/a/2)*2:240"哪个输出电影但产生的视频质量非常差.

编辑#2:这不是重复, …

ffmpeg libav

6
推荐指数
1
解决办法
952
查看次数

[UIView removeFromSuperview] 是否也递归删除其子视图?

我有一个需要完全删除的视图层次结构。可以只调用removeFromSuperview顶部父视图还是我需要递归访问每个子节点并单独删除它?

编辑:只是为了澄清,我知道删除父级会从物理上删除子级,但这是否也适当地减少了他们的引用计数?

objective-c uiview ios

5
推荐指数
1
解决办法
1804
查看次数

即使用户将时钟设定回来,如何限制日常使用?

我有一个IOS应用程序,需要跟踪每天的免费使用时间.一旦超过阈值,用户就必须购买应用程序或等待第二天解锁当天的免费使用时间.

是否有本地方法来检测用户是否已将时钟设置回来?假设没有Internet连接与时间服务器同步

objective-c ios

5
推荐指数
1
解决办法
307
查看次数

如何在制作FFmpeg时查看命令?

当我makeffmpeg时,我可以看到以下几行

CC  ffmpeg.o
LD  ffmpeg_g
CP  ffmpeg
STRIP   ffmpeg
Run Code Online (Sandbox Code Playgroud)

什么是快速查找CC,LD等命令的方法,只需对Makefile进行少量修改即可?

gcc ffmpeg makefile

5
推荐指数
1
解决办法
247
查看次数

如何将ffplay作为无窗口进程运行?

我正在将ffplay作为后台进程运行,该进程将图像数据提供给主UI进程。我设置了“ SDL_VIDEODRIVER = dummy”,以禁止在SDL窗口中显示ffplay视频。

问题是,即使未显示视频输出窗口,ffplay进程仍会显示为应用程序窗口(坞站,CMD + TAB条目等)。我该如何避免呢?

sdl ffmpeg

5
推荐指数
2
解决办法
2630
查看次数

XML在不同机器上的解析方式不同

这是我输入的xml

   <app appid="{C38B7539}" lang="en">
      <updatecheck/>
   </app>
Run Code Online (Sandbox Code Playgroud)

通过以下php解析

$xmlObj = simplexml_load_string($xmlStr);
if ($xmlObj === false) {
    // log errors
    return;
}
print_r($xmlObj);
Run Code Online (Sandbox Code Playgroud)

Windows上的输出(故障)

[app] => SimpleXMLElement Object
    (
        [@attributes] => Array
            (
                [appid] => {C38B7539}
                [lang] => en
            )

        [0] => SimpleXMLElement Object   <-- Note the 0 instead of updatecheck
            (
            )
    )
Run Code Online (Sandbox Code Playgroud)

linux上的输出(正确)

[app] => SimpleXMLElement Object
    (
        [@attributes] => Array
            (
                [appid] => {C38B7539}
                [lang] => en
            )

        [updatecheck] => SimpleXMLElement Object
            (
            )
    )
Run Code Online (Sandbox Code Playgroud)

结果在linux 下和windows下array_key_exists('updatecheck', $xmlObj) …

php xml simplexml

5
推荐指数
0
解决办法
68
查看次数

由于其他不需要的输出充斥 logcat,我的应用程序的 logcat 输出不断消失

在 Moto G 上开发我的应用程序时,我经常遇到数以万计的以下消息充斥日志。

E/MM_OSAL (  275): isSamePayload Sync byte(0x47) not found!! m_nCurrOffset=0
E/MM_OSAL (  275): isSamePayload Sync byte(0x47) not found!! m_nCurrOffset=0
... repeated 20000 times in a span of 12 secs
D/WifiStateMachine(1004): processMsg: L2ConnectedState
D/WifiStateMachine(1004): handleMessage: X
D/WifiStateMachine(1004): handleMessage: E msg.what=131155
... repeated 15000+ times all interspersed together
Run Code Online (Sandbox Code Playgroud)

现在,当然我已经设置了 Logcat 过滤器,但是所有这些消息都填满了 logcat 缓冲区,而我自己的调试消息不断消失。

观察

  • 无论使用 Android Studio 还是 Eclipse,都会发生这种情况。这意味着问题出在 Logcat 上,而不是我想的 IDE 如何处理它。
  • 根据这个问题,我应该增加默认的 logcat 缓冲区大小或将其设置为无限 (0),但是由于这些垃圾邮件不断堆积的速度太快,这仍然无法解决。
  • 如果我重新启动手机,它只会在垃圾邮件赶上之前的几分钟内清除 logcat。

如何阻止这些不需要的消息溢出 Logcat 缓冲区?

更新:好的,我想我找到了一些线索。logcat 缓冲区没有被清除

$ ./adb …
Run Code Online (Sandbox Code Playgroud)

eclipse android logcat

5
推荐指数
1
解决办法
1277
查看次数

在Windows上将错误与taglib链接

taglib为Windows 构建了静态库,如下所示.得到了mingw,而不是VS.

  1. 查看 git clone https://github.com/taglib/taglib.git git_taglib
  2. 已安装cmake的Win32安装程序从cmake.org
  3. 配置 cmake -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=/C/taglib_package -DCMAKE_C_COMPILER=/C/MinGW4.4/bin/gcc.exe -DCMAKE_CXX_COMPILER=/C/MinGW4.4/bin/g++.exe -DENABLE_STATIC=ON -DENABLE_STATIC_RUNTIME=ON -DHAVE_ZLIB=0
  4. mingw32-make.exe
  5. 安装mingw32-make.exe installC:\taglib_package

在我的Qt项目中,我正在使用这个库

的.pro

INCLUDEPATH+="C:/taglib_package/include/taglib"
QMAKE_LIBDIR += "C:/taglib_package/lib"
LIBS+= -lz -ltag
Run Code Online (Sandbox Code Playgroud)

的.cpp

#include "fileref.h"
#include "taglib.h"
...
TagLib::FileRef f("Z:/Documents/sample.mp3");
TagLib::String artist = f.tag()->artist();
std::cout<< "Artist is " << artist << std::endl;
Run Code Online (Sandbox Code Playgroud)

这导致以下链接错误

release/main.o:main.cpp:(.text+0x93): undefined reference to `_imp___ZN6TagLib8FileNameC1EPKc'
release/main.o:main.cpp:(.text+0xb3): undefined reference to `_imp___ZN6TagLib7FileRefC1ENS_8FileNameEbNS_15AudioProperties9ReadStyleE'
release/main.o:main.cpp:(.text+0xdf): undefined reference to `_imp___ZNK6TagLib7FileRef3tagEv'
release/main.o:main.cpp:(.text+0x101): undefined reference to `_imp___ZN6TagLib6StringD1Ev' …
Run Code Online (Sandbox Code Playgroud)

c++ linker mingw taglib

5
推荐指数
1
解决办法
611
查看次数

标签 统计

ffmpeg ×4

ios ×2

objective-c ×2

qt ×2

android ×1

c++ ×1

eclipse ×1

gcc ×1

libav ×1

linker ×1

logcat ×1

makefile ×1

mingw ×1

php ×1

sdl ×1

simplexml ×1

taglib ×1

uiview ×1

xml ×1