首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
FFmpeg 硬件转码
2024-10-17
ffmpeg转码使用硬件加速
需求源于手机拍摄的视频,默认参数码率较大,拍摄的文件体积较大,不便于保存和转发.手机默认拍照的720P视频,默认码率达到4M,实际上转成1M就差不多了.FFmpeg默认的转码是使用软件解码,然后软件编码,速度慢,CPU使用率太高(基于100%). 本次测试硬件环境: CPU: Intel i5- 4核2.7GHz RAM: 8GB SSD: Reeinno ST120GB GPU: Intel HD Graphics 芯片集成显卡 软件环境: Windows SP1 64bit FFmpeg v
使用ffmpeg实现转码样例(代码实现)
分类: C/C++ 使用ffmpeg实现转码样例(代码实现) 使用ffmpeg转码主要工作如下: Demux -> Decoding -> Encoding -> Muxing 其中接口调用如下: 点击(此处)折叠或打开 av_register_all(); avformat_open_input avformat_find_stream_info open_codec_context av_image_alloc avcodec_alloc_frame avformat_alloc_o
最简单的基于FFMPEG的转码程序
本文介绍一个简单的基于FFmpeg的转码器.它可以将一种视频格式(包括封转格式和编码格式)转换为另一种视频格式.转码器在视音频编解码处理的程序中,属于一个比较复杂的东西.因为它结合了视频的解码和编码.一个视频播放器,一般只包含解码功能:一个视频编码工具,一般只包含编码功能:而一个视频转码器,则需要先对视频进行解码,然后再对视频进行编码,因而相当于解码器和编码器的结合.下图例举了一个视频的转码流程.输入视频的封装格式是FLV,视频编码标准是H.264,音频编码标准是AAC:输出视频的封装格式是AV
C#实现 ffmpeg视频转码、播放
近来公司项目要求实现全景相机的视频截取,但是截取的视频需求转码上传.经过研究采用ffmpeg转码,奉上一个详细介绍的博文: 最简单的基于FFMPEG的转码程序 主要是转码的操作过程,能够实现了从相机获取的MP4转换成普通播放器播放的MP4格式; //转码方法 private void Test1() { Process p = new Process(); p.StartInfo.FileName = path +"ffmpeg.exe"; p.StartInfo.UseShellEx
FFmpeg简单转码程序--视频剪辑
学习了雷神的文章,慕斯人分享精神,感其英年而逝,不胜唏嘘.他有分享一个转码程序<最简单的基于FFMPEG的转码程序>其中使用了filter(参考了ffmpeg.c中的流程),他曾说想再编写一个不需要filter的版本,可惜未有机会.恰好工作中有相关ffmpeg处理内容,故狗尾续貂,撰写本文. 相关流程: 1.打开输入文件 2.打开输出文件 3.设置解码环境 4.设置输出流信息 5.设置编码环境 6.打开输入流循环读取,解码再编码写入 7.fflush解码和编码ctx 8.关闭文件 本文的代码,
ffmpeg/ffplay源码剖析笔记<转>
转载:http://www.cnblogs.com/azraelly/ http://www.cnblogs.com/azraelly/archive/2013/01/18/2865858.html 内容摘自<ffmpeg/ffplay源码剖析> 1.播放器一般原理 可以直观的看到播放这个媒体文件的基本模块(filter),七个模块按广度顺序:读文件模块(source filter),解复用模块(Demux filter),视/音频解码模块(Decode filter),颜色空间转换模块(Co
FFmpeg libswscale源码分析1-API介绍
本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/14349382.html libswscale 是 FFmpeg 中完成图像尺寸缩放和像素格式转换的库.用户可以编写程序,调用 libswscale 提供的 API 来进行图像尺寸缩放和像素格式转换.也可以使用 scale 滤镜完成这些功能,scale 滤镜实现中调用了 libswscale 的 API.libswscale 的 API 非常简单,就一个 sws_scale() 接口,但
【视频开发】【CUDA开发】FFMPEG硬件加速-nvidia方案
1.目标 <1>显卡性能参数: <2>方案可行性: 2.平台信息 2.1.查看当前显卡信息 命令: lspci |grep VGA 信息: 01:00.0 VGA compatible controller: NVIDIA Corporation GK106 [GeForce GTX 645 OEM] (rev a1) 解析: GK106,是一个由英伟达公司制造的适配器图形处理和加速核心芯片. 从NVIDIA支持的矩阵表中查找出GK106支持格式分别为: NVDEC解码:
ffmpeg使用转码学习
ffmpeg在官网上描述自身:是一个对视频和音频进行记录,转换,流化的完整的跨平台解决方案.事实上,现在有很多工具都是基于ffmpeg来进行视频音频的处理工具的.比如鼎鼎大名的格式工厂,就是使用ffmpeg来作为内核的转码工具. 理解一些音视频的编码知识. 我们平时看的视频文件格式:mp4/rmvb/mkv/avi其实是一个容器.这个容器中装的东西分为两大类:音频和视频.对于视频这部分,它包含的编码格式有:H264/H265/VP8/VC1等.对于音频这个部分,它包含的编码格式有:AAC/MP3
java运用FFMPEG视频转码技术
基于windows系统安装FFMPEG转码技术 http://wenku.baidu.com/link?url=z4Tv3CUXxxzLpa5QPI-FmfFtrIQeiCYNq6Uhe6QCHkU-1CmIQsjqC0lrqCvCPhgQYjU192fTEA_U6pzmvrFZwCqT776QtA4rExhioNQNLXG ffmpeg转码AVI并可以用JMF打开 http://wenku.baidu.com/view/561b59f03186bceb18e8bb00.html?re=view
黄聪:FFmpeg视频转码技巧之-crf参数(H.264篇)
昨天,有个朋友给我出了个难题:他手上有一个视频,1080P的,49秒,200多兆:要求在确保质量的情况下把文件压缩到10M以内. 这是什么概念呢?按照文件大小10M来计算,码率是:10 x 8 / 49 = 1.6 Mbps.也就比VCD的质量略好一点(注:VCD的标准码率是1150 Kbps).谈何“确保质量”?mission impossible啊! 咱还是现实一点吧.在不明显损失画质的前提下,看看使用FFmpeg能够帮到多少忙.用iPhone拍了一个1920 x 1080的视频,33秒,4
Ffmpeg音频转码 卡顿(MP2转AAC)
最好经手一个小的功能将mp2实时流转成AAC并发布成rtmp音频流,本身不是很难的一个需求, 一个晚上就能将功能开发好.功能开发完毕后,找来一音频文件利用Ffmpeg命令将音视频文件推成 实时udp格式音频流,具体的推送命令是: ffmpeg.exe -r -i F:\test.mp2 -acodec copy -f mp2 udp://127.0.0.1:1234 测试程序以udp://127.0.0.1:1234为输入源,rtmp://127.0.0.1/live/stream为输出流.从输
ffmpeg的源码调试
转自:windows下使用Visual Studio编译可以调试的FFmpeg 2017年01月05日 13:33:39 阅读数:3654 因本人主要在windows环境下开发,Linux下的gpb调试工具又不如vs调试方便(使用过其他调试工具才知道,vs果真为宇宙最强调试工具),所以决定在windows编译可以调试FFmpeg,以方便调试和学习FFmpeg内部代码. 有过在visual studio下编程的小伙伴应该都知道vs的调试信息主要依靠于pdb文件,那么我们今天编译的目的就是使FFmp
windows下ffmpeg批量转码
以mp4转mp3为例 for %%i in (*.mp4) do ffmpeg -i "%%i" "%%i.mp3" 将当前文件夹下的mp4文件全部转码为mp3
Ffmpeg常用转码命令
H264视频转ts视频流 ffmpeg -i test.h264 -vcodec copy -f mpegts test.ts H264视频转mp4 ffmpeg -i test.h264 -vcodec copy -f mp4 test.mp4 ts视频转mp4 ffmpeg -i test.ts -acodec copy -vcodec copy -f mp4 test.mp4mp4视频转flvffmpeg -i test.mp4 -acodec copy -vcodec copy -f f
JAVA调用FFMpeg进行转码等操作
直接上代码: public abstract class FFmpegUtils { FFmpegUtils ffmpegUtils; ; String timeLength = ""; Pattern pattern = Pattern.compile("Duration: (.*?), start: (.*?), bitrate: (\\d*) kb\\/s"); String frameRegexDuration = "size=([\\s\\S]*
ffmpeg 音频转码
大多数厂家摄像机输出的音频流格式都是PCM,有一些场合(比如讲音视频流保存成Ts流)需要将PCM格式转成AAC格式.基本的思路是先解码得到音频帧,再将音频帧编码成AAC格式.编码和解码之间需要添加一个filter.filter起到适配的作用. 首先解码: AVFrame * decode(AVPacket* sample) { ; AVFrame* frame = av_frame_alloc(); AVFrame *filt_frame = nullptr; auto length = avc
java ffmpeg视频转码(自测通过)
import java.io.*; public class VideoTransfer { //ffmepg文件 安装目录 private static String ffmpeg = "D:\\开发常用工具\\ffmpeg-20181018-f72b990-win64-static\\bin\\ffmpeg"; public static void main(String args[]) { String infile = "d://2//64891541678_1810
最简单的基于FFMPEG的转码程序 —— 分析
模块: libavcodec - 编码解码器 libavdevice - 输入输出设备的支持 libavfilter - 视音频滤镜支持 libavformat - 视音频等格式的解析 libavutil - 工具库 libpostproc - 后期效果处理 libswscale - 图像颜色.尺寸转换 1. 主函数分析: 大致流程: 调用注册函数: open_i
【第四篇章-android平台MediaCodec】推断是否支持硬件解码码
public boolean isSupportMediaCodecHardDecoder(){ boolean isHardcode = false; //读取系统配置文件/system/etc/media_codecc.xml File file = new File("/system/etc/media_codecs.xml"); InputStream inFile = null; try { inFile = new FileInputStream(file); } catc
FFmpeg再学习 -- 硬件加速编解码
为了搞硬件加速编解码,用了一周时间来看 CUDA,接下来开始加以总结. 一.什么是 CUDA (1)首先需要了解一下,什么是 CUDA. 参看:百度百科 -- CUDA 参看:CUDA基础介绍 参看:cuda入门 参看:CUDA知识普及 参看:CUDA学习笔记 CUDA (Compute Unified Device Architecture,统一计算设备架构),是显卡厂商 NVIDIA 在2007年推出的并行计算平台和编程模型.它利用图形处理器 (GPU) 能力,实现计算性能的显著提高.CUD
热门专题
TurnToQRCode内容太密集了怎么办
axios.get参数后不是字符串
C#跨应用程序域访问底层实现
springboot @requestbody参数乱码
springboot 下划线和驼峰互转
SPJ读入string
h函数怎么写v-for
unity c# 异常
Vs 加载astyle
java将小数转化为分数
go语言的数据类型转换strconv.ParseInt
Chart Parsing句子合法性
虚拟机断电重启后docker报错
java使用Environment读取配置文件乱码
python3 写入文本
crontab 执行nohup进程
怎么把文件夹内容更新到SVN上
异步sqlalchemy curd
fastReport 不绑定数据库
python安装serial模块