ffmpeg多线程转码
FROM: http://www.xsdou.com/1470.html
最近需要用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多线程转码相关推荐
- 【FFmpeg】ffmpeg工具源码分析(三):分配过滤器内存(宏GROW_ARRAY)详解
0.引言 在ffmpeg.c源码的核心函数transcode() 中,先执行初始化操作transcode_init() : 首先初始化过滤器filtergraphs,在寻找过滤器在哪分配时,发现它使用 ...
- 使用ffmpeg实现转码样例(代码实现)
分类: C/C++ 使用ffmpeg实现转码样例(代码实现) 使用ffmpeg转码主要工作如下: Demux -> Decoding -> Encoding -> Muxing 其中 ...
- Android FFmpeg视频转码并保存到本地
本文讲述在Android中, 如何将FFmpeg视频转码为YUV格式并保存到本地. 首先,我们基于上一篇文章 基于Android Studio3.2实现ffmpeg最简单的例子 来进行配置. 配置好之 ...
- 最简单的基于FFMPEG的转码程序
本文介绍一个简单的基于FFmpeg的转码器.它可以将一种视频格式(包括封转格式和编码格式)转换为另一种视频格式.转码器在视音频编解码处理的程序中,属于一个比较复杂的东西.因为它结合了视频的解码和编码. ...
- nodejs+ffmpeg视频转码
nodejs+ffmpeg视频转码 const context = require("../core/node_core_ctx"); const {spawn,exec} =re ...
- 使用ffmpeg批量转码的命令行(以mkv转mp4为例)
使用ffmpeg批量转码的命令行(以mkv转mp4为例) 单个文件转码 批量文件转码 使用python和ffmpeg在cmd中实现(没事找事) 单个文件转码 ffmpeg -i INPUTPATH.m ...
- C#调用Process执行ffmpeg视频转码七分钟后就假死了
问题描述 ffmpeg -i /wzfgs_img_storage/tuku.img_linux/upload/20210421_164313_803_a2a2.mov -vcodec h264 /v ...
- HLS + ffmpeg 实现动态码流视频服务
一.简介 如下图,包含三部分,右边一列为边缘节点:中间一列代表数据中心:左边一列是项目为客户提供的一系列web管理工具: 具体来说在我们项目中有一堆边缘节点,每个节点上部署一台强大的GPU服务器及N个 ...
- java用ffmpeg转码_java运用FFMPEG视频转码技术.doc
java运用FFMPEG视频转码技术 基于windows系统安装FFMPEG转码技术 软件特点: 被转视频基本不失真(支持超清.高清.标清): 转码速度比较现成转码软件快非常多(不管文件有多大,此软件 ...
最新文章
- 刚刚,2022 USNews全美大学排行榜出炉!普林斯顿霸榜,哥大哈佛MIT并列第二
- 学习实例.文章管理.数据库操作类.DBUtil.java
- mysql instead of_mysqluniqueoptionprefixmyisam_recoverinsteadofmyisam-recover-options的解决方法
- 时间即财富:创业者浪费精力的八个错误
- 文件标识符无效。使用 fopen 生成有效的文件标识符。_「存储架构」块存储、文件存储和对象存储(第1节)...
- Mars——基于矩阵的统一分布式计算框架
- 在JavaScript中以Hours24:Minutes:Seconds格式获取当前时间
- mysql如何植入到oracle_MySQL性能优化之数据库Recovery改进策略
- Eclipse改动Project的文件夹位置
- spring batch 读mysql_spring batch csv文件导入到mysql数据库
- [导入]【布鲁斯威利斯】【虎胆龙威4最终珍藏版】【1024x432RMVB 1.41GB】【20:50】...
- android studio 导入c,3.3、Android Studio 添加 C 和 C++ 项目
- 自动生成PDF的书签目录
- 新偶像时代:被直播重构的粉丝经济和社交平台
- R语言主题风格—ggthemes和hrbrthemes包绘图风格总览参考手册
- Freesurfer recon-all命令详解及使用示例
- 艺赛旗(RPA)word 文本差异比较
- Linux tshark安装
- 小程序请求后端接口步骤
- wamp橙色不变绿的几个主要原因