最近需要用ffmpeg进行视频转码,考虑到ffmpeg这个工具本身支持多线程,而服务器也是多核的,想最大程度发挥服务器的计算能力。显然不能用单线程了,但是线程并不是越多越好,需要找到个平衡点。这就需要用time命令进行计时,并将该屏幕的输出重定向到文件,以便后期进行分析。

假设我这里有个in.mp4的视频文件,分辨率为640*480,码率为580kbps,需要降低分辨率为320*240,降低码率为290kbps(这个参数和分辨率同时使用时不一定起作用,特别是中途退出时)。

普通降低分辨率,码率的命令:

ffmpeg-y-i in.mp4-s 320x240-b290000 out290.mp4

带thread参数的命令:

ffmpeg -y -threads 2 -i in.mp4 -s 320x240 -b 290000 out290.mp4

这里用了两个线程。

用time统计时间的命令:

time ffmpeg -y -threads 2 -i in.mp4 -s 320x240 -b 290000 out290.mp4

输出重定向命令:

(time ffmpeg -y -threads 2 -i in.mp4 -s 320x240 -b 290000 out290.mp4) 2>1.txt

由于输出为标准出错,所以这里用2>1.txt

当然也可使用如下命令:

(time ffmpeg -y -threads 2 -i in.mp4 -s 320x240 -b 290000 out290.mp4) >& 1.txt

为了同时在屏幕上输出,可以用tee命令。首先将标准出错重定向到标准输出,然后通过通道传给文件,命令如下:

(time ffmpeg -y -threads 2 -i in.mp4 -s 320x240 out290.mp4) 2>&1 | tee 1.txt

如果想测试下服务器到底支持多少个线程比较好,就需要写个脚本运行,我这里有一个,仅供参考:

#! /bin/bash

echo "Input num : "

read num

for (( i=1; i<=$num; i=i+1 ))

do

#(time ffmpeg -y -threads $i -i in.mp4 -s 320x240 -vcodec libx264 -vpre fast out290.mp4) >& $i.txt

(time ffmpeg -y -threads $i -i in.mp4 -s 320x240 -vcodec libx264 -vpre fast out290.mp4) 2>&1 | tee $i.txt

done

ffmpeg threads_ffmpeg多线程转码相关推荐

  1. ffmpeg多线程转码

    FROM: http://www.xsdou.com/1470.html 最近需要用ffmpeg进行视频转码,考虑到ffmpeg这个工具本身支持多线程,而服务器也是多核的,想最大程度发挥服务器的计算能 ...

  2. 从FFmpeg 4. 2源码中提取dshow mjpeg code步骤

    之前在https://blog.csdn.net/fengbingchun/article/details/103735560 中介绍过在Windows上通过vs2017编译FFmpeg源码进行单步调 ...

  3. linux 显卡转码,ffmpeg用GPU转码

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 有些视频编码太屌,播放起来对CPU消耗巨大,而在电视上或者电视盒子上看视频,编码就需要合适,楼主用的FireTV Sti ...

  4. ffmpeg 参数_使用FFMPEG进行视频转码

    Note: 此文章首发于我的个人博客zhi-hua.wang ,开放转载但需附上出处. 使用FFMPEG进行视频转码 - 日落孤城​www.zhi-hua.wang FFMPEG 是一款开源的视频处理 ...

  5. ffmpeg rtmp 花屏_使用FFMPEG进行视频转码

    Note: 此文章首发于我的个人博客zhi-hua.wang ,开放转载但需附上出处. 使用FFMPEG进行视频转码 - 日落孤城​www.zhi-hua.wang FFMPEG 是一款开源的视频处理 ...

  6. ffmpeg使用bsf后码流从avcc格式变成annex-b造成硬解异常

    ffmpeg使用bsf后码流从avcc格式变成annex-b造成硬解异常 问题的产生 第一个ffmpeg拷贝(copy)第三方的流到源站,第二个ffmpeg进程的源流为第一个ffmpeg的输出,并使用 ...

  7. ffmpeg学习日记506-源码-av_image_copy()函数分析及功能

    ffmpeg学习日记506-源码-av_image_copy()函数分析及功能 实现文件 av_image_copy()实现在libavutil/imgutils.c中 函数原型 void av_im ...

  8. FFmpeg简述,源码分析,录制/压缩/水印/剪切/旋转/滤镜/美颜/上传视频等(CPU软编码和解码)

    > ffmpeg源码分析 ffmpeg源码简析(一)结构总览- https://blog.csdn.net/Louis_815/article/details/79621056 FFmpeg的库 ...

  9. Qt基于FFmpeg实现视频转码

    一.简述转码 转码的作用:封装格式的实现.(h264->mov.mp4.flv.avi(封装格式)等) 之前博客中提到如何把像素数据编码得到 H264 的压缩码流数据,但是一般的播放工具是没法直 ...

最新文章

  1. 薛XX后代的IQ CSU1597【循环节】或【快速幂】
  2. oracle的adr,oracle ADR
  3. 第4章 与缓冲区有关的函数
  4. git经常使用命令和问题
  5. python核心教程第二版答案_python核心编程第二版第4章习题答案.docx
  6. 计算机一级考试考网络什么,计算机一级考试内容 一级考试难不难
  7. 网络安全09_部署Windows XP、Windows Server 2003、Windows server 2008、Windows 7 每个虚拟机各两台(2)
  8. 全志A33-linux内核early_printk分析及使用
  9. c,c++中字符串处理函数strtok,strstr,strchr,strsub
  10. ShellExecute 函数的用法和实例
  11. FreeAnchor:令anchor自由匹配标签的策略
  12. ceisum 加载geojson,webgl 加载geojson数据没有贴地
  13. C++中消息自动派发之一 About JSON
  14. Centos 5.2安装Cacti并集成Nagios安装文档
  15. Drawbot赋能商家: 智能助手主打上新详情
  16. VS2015中OpenCV编程插件Image Watch安装和使用介绍
  17. error LNK2001: 无法解析的外部符号unresolved external symbol __imp__JNI_CreateJavaVM@12
  18. C#实现按键精灵的'找图' '找色' '找字'的功能
  19. 小程序项目:基于微信小程序的校园互助平台——计算机毕业设计
  20. html年龄0-120岁正则,正则表达式

热门文章

  1. 兰大计算机考研是差额复试吗,兰大考研录取名单拟公布,423分考生复试被刷,只因犯了低级错误...
  2. 软件杯-地物分类功能
  3. Ben Brode:如何成为一个游戏策划
  4. 黑马程序员 手写山寨版的金山词霸
  5. 央视神雕,是不是有点幼稚?
  6. 碎碎念No.02 你的家庭是什么样的
  7. 21美亚个人赛,工具用火眼和取证大师
  8. 好网的docker项目-02dsa-framework
  9. 12个有用的网站工具
  10. 系统规划与管理备考整理