当前位置: 首页 > 知识库问答 >
问题:

如何使ffmpeg像Android内置的视频查看器一样高效?

查学文
2023-03-14
        unsigned long long current = GetCurrentTimeInNanoseconds();
        avcodec_decode_video(pCodecCtx, pFrame, &frameFinished, packet.data, packet.size);
        __android_log_print(ANDROID_LOG_DEBUG, "getFrame>>>>", "decode video time: %llu", (GetCurrentTimeInNanoseconds() - current)/1000000);
        ffmpeg.exe -i "#inputFilePath#" -c:v libx264 -preset veryslow -g 2 -y -s 910x512 -b 5000k -minrate 2000k -maxrate 8000k -pix_fmt yuv420p -tune fastdecode -coder 0 -flags -loop -profile:v main -x264-params subme=5:ref=4 "#ouputFilePath#"

使用这些设置,ffmpeg在20-25秒内解码帧,尽管使用sws_scale然后写入纹理,但我仍然在Xperia Ion上以低于我想要的分辨率徘徊在~22 FPS。

共有1个答案

苍元章
2023-03-14

本机查看器使用硬件h264解码器,而ffmpeg则 通常编译 仅用于软件。 必须使用libstagefright构建ffmpeg。

已拉出libstagefright选项

 类似资料:
  • 我想合并两个视频。两者都有相同的决心。第二个视频没有任何音频 ffmpeg-itest.mp4-ipicture.mp4-filter_complex"[0: v][0: a][1: v][1: a]conat=n=1: v=2: a=1[v][a]"-map"[vv]"-map"[aa]"mergedVideo.mp4 这是我正在使用的命令,但我得到了以下错误流说明符:filtergraph d

  • 我得到了 致命信号11(SIGSEGV),代码1,tid 5823中的故障地址0x 5(e . mypc . video cut) 当我试着调试应用程序时,当我读到这一行时崩溃了: 视频修剪屏幕:

  • 这行工作良好,但我想创建一个视频文件从图像在另一个文件夹。“我的文件夹”中的映像名称为: 我如何从不同的文件夹输入图像文件?示例: 我尝试了这个命令,但是只生成了第一个图像(img001.jpg)的视频。

  • 正在尝试从图像(1080p.png)音乐(320kbmp3)为youtube制作视频。 但转化是缓慢的。有什么想法吗,它是如何使优化的<代码>E:\U测试

  • 视频通话中,默认显示1个主屏+4个小屏,若想查看其他人的屏幕,提供两种方式: 1、 在小屏中进行滑动交互,即可通过滑动轮播的形式在小窗口中查看其他人的画面; 2、 在成员管理界面中,右键或点击某个人成员,即可呈现二级菜单,二级菜单中选择置顶到主屏即可。

  • 其次,当使用摄像机录制视频时,默认情况下它不会被压缩,所以我想whatsapp使用压缩它,而且不需要时间。(尝试了1min的视频1920x1080,大小为125MB,很快变成640x360,大小为5MB,并自动开始上传)..他们怎么可能这样做?而为什么选择640x360,在我看来对于2个异步任务来说速度非常快:压缩+上传。 当我在.mp4-codec:v libx264-crf 23-preset