哈喽,这一篇记录一个小小的关于FFmpeg的使用,借助FFmpeg的API接口获取flv格式视频的时长。...发现获取的视频时长为0,按照排查问题的一般思路,试试别的格式的文件是否也会有问题。尝试将文件更换为MP4文件,发现可以正常获取时长,如下图: ?...甚是不理解啊,经查阅资料发现,对于flv文件需要首先调用avformat_find_stream_info, 才可正常的获取视频时长,这一过程中,同时还发现另外一种获取视频时常的方式:FFmpeg对于...cout << "flv file duratio: " << seconds << std::endl; system("pause"); return 0;} 其中:另外一种获取视频时长的方式为...终于可以成功获取flv格式视频的时长。可以动手去试试了!
flv格式的视频不能像其他视频一样直接通过ffprobe输出的json获取,可以通过它的命令行输出截取时间段转换得到时间。...int addr=p1-src; str = str.mid(addr+10); str =str.section(',', 0,0); qDebug("视频的时长...(MS):"<<time_ms; //反向解析回来对比 qDebug()<<"还原视频的时长(标准时间):"<<QTime(0,0,0,0).addMSecs(int(...time_ms)).toString(QString::fromLatin1("HH:mm:ss.zzz")); } 输出结果: 视频的时长(标准时间):00:06:37.15 最视频的时长(MS...): 397150 还原视频的时长(标准时间): "00:06:37.150"
视频播放时,经常会遇到: 1、不同播放器显示的文件时长不一样 2、视频转码后,文件时长发生了变化 3、视频播到后面,只有画面没有声音 等各种异常,这时我们可以检查一下原视频的时长 但是原视频的时长也有多个值...,分别是容器时长、音视频流时长、解码后播放时长,这几个值可能不一样,就导致了不同播放器显示值不一样,不同播放时也因此表现得不一样 容器时长(container duration)的获取方法: ffprobe...(stream duration)的获取方法: ffprobe.exe -v error -select_streams v:0 -show_entries stream=duration -of default...video stream的时长作为播放时长 另外,并不是所有格式的视频,会在音视频流级别保存了时长,这时可能会拿不到时长 解码后文件播放时长(get duration by decoding) 可以通过...ffmpeg命令,先完全解码,然后获取到文件时长 ffmpeg.exe -i input.mp4 -f null - image.png 可以看到时长为2:02:33,和container duration
本文介绍如何用ffmpeg开源组件按时长进行切片,举一个例子,一个视频网站,拿到一个时长1.5小时的电影,用户点击播放时,常用的技术方案就是把一个完整的大文件,转码后切成按固定时长的小文件,分发到cdn...上去,这样用户就可以实现就近下载,包括拖放等操作,这里面有比较多的技术细节,本文只讨论第一步,按时长切片。...一 获取视频时长 ffmpeg安装后,直接执行ffmpeg -i 文件就可以从内容中获取到时长,如下图所示,其中的Duration就是时长 wangyachangdeMacBook-Pro:ffmpeg...wangyachang$ /usr/local/ffmpeg/bin/ffmpeg -i movie.mp4 ffmpeg version 3.0.2 Copyright (c) 2000-2016.../usr/bin/env python # -*- coding: UTF-8 -*- #本脚本使用ffmpeg分割音视频文件,分割过程不进行转码或压缩 import subprocess import
应用场景: m3u8视频爬取,获取m3u8视频链接不知道数量,可以获得时长 while True 死循环判断时长break打断 while 时长<指定时常 import os # !...pip install moviepy from moviepy.editor import VideoFileClip filename="<em>视频</em>文件.mp4" #获取时长——单位秒 clip = VideoFileClip...(filename).duration #获取视频文件大小——单位kb os.path.getsize(filename)/1024 参考资料:python 获取视频文件的大小,时长等
1.4.4 上述这段 maven 依赖包含了完整的 javacv 功能 (非常多,依赖Jar就占大概有500MB),由于这里只使用到了其中 ffmpeg...artoolkitplus-platform 核心代码 获取视频时长.../** * 获取视频时长,单位为秒 * * @param video 源视频文件 * @return 时长(s) */ public...FrameGrabber.Exception e) { e.printStackTrace(); } return duration; } 截取视频指定帧为图片.../** * 截取视频获得指定帧的图片 * * @param video 源视频文件 * @param picPath 截图存放路径 */
播放器有个功能,当用户打开视频时,需要读取媒体文件的总时长等信息,不巧的时,获取FLV时总失败,下面来具体分析下FLV和MP4获取总时长的原因和区别: 播放器有个获取MediaInfo的接口,功能如下:...return -1; } //video if(stream->codecpar->codec_type == AVMEDIA_TYPE_VIDEO){ //获取视频总时长...总是打印duration不合法: 很奇怪的是,使用av_dump_format函数可以看到Duration: Input #0, flv, from '/home/zhenghui/视频/1080P.flv...200 kb/s, 30 fps, 30 tbr, 1k tbn Stream #0:1: Audio: adpcm_swf, 44100 Hz, stereo, s16, 352 kb/s 就翻了翻ffmpeg...return -1; } //video if(stream->codecpar->codec_type == AVMEDIA_TYPE_VIDEO){ //获取视频总时长
php define('FFMPEG_PATH', '/usr/local/ffmpeg2/bin/ffmpeg -i "%s" 2>&1'); function getVideoInfo($file...) { $command = sprintf(FFMPEG_PATH, $file); ob_start(); passthru($command);...[,\s]/", $info, $match)) { $data['vcodec'] = $match[1]; //视频编码格式 $data['vformat'] = $...match[2]; //视频格式 $data['resolution'] = $match[3]; //视频分辨率 $arr_resolution = explode('
前言 大多数获取视频的封面都是使用FFMpeg获取视频的第一帧,但是很多视频第一帧是纯黑的,我们就要取后面的帧,这时候我们就要知道视频本身有多长。...获取视频时长 容器时长(container duration)的获取方法: ffprobe -v error -show_entries format=duration -of default=noprint_wrappers...=1:nokey=1 -i a.mp4 音视频流时长(stream duration)的获取方法: ffprobe -v error -select_streams v:0 -show_entries...stream=duration -of default=noprint_wrappers=1:nokey=1 a.mp4 一个媒体文件里边有多个音视频流,各个流的时长也未必一样,一般播放器会以video...stream的时长作为播放时长。
//获得视频文件的总长度时间和创建时间 根据视频长度判断是否失效 public function getTime($url) { //获取视频重定向后的链接 $location = locationUrl...($url); //获取视频Content-Length $responseHead = get_data($location); $list1 = explode("Content-Length...list2 = explode("Connection", $list1[1]); $list = explode("x", $list2[0]); return $list[0]; } //获取视频重定向后的链接...matches[1]); } else{ return trim($matches[1]); } } else { return false; } } //审核视频...curl_exec($oCurl); // 获得响应结果里的:头大小 $headerSize = curl_getinfo($oCurl, CURLINFO_HEADER_SIZE); // 根据头大小去获取头信息内容
文章目录 前言 一、需求 二、源码 三、运行结果 前言 本文记录用 FFmpeg 获取视频流+音频流的信息(编码格式、分辨率、帧率、播放时长…),所用的工程基于上个博客编译成功的工程:使用FFmpeg4.3.1...的SDK官方开发包编译ffmpeg.c 一、需求 我们经常需要知道一个媒体文件所包含的媒体流的信息,比如文件格式、播放时长、码率、视音频编码格式,视频分辨率,帧率,音频属性等信息。...如何使用 FFmpeg API 获取这些信息呢?...媒体容器封装格式 文件播放时长 文件平均码率(视频+音频) 视频属性(编码器名称、视频分辨率、帧率、编码码率) 音频属性(编码器名称、采样率、声道数、编码码率) 二、源码 ffmepg.h 文件中添加我们自定义的结构体...long_name); printf("audioCodecName = %s\n", avmi->audioCodecName); } } } // 获取音视频流的基本信息
FFMPEG 音视频流 获取流程 I . FFMPEG 获取音视频流信息 ( AVFormatContext 结构体 ) II . FFMPEG 获取 音视频流 数量 III ....FFMPEG 获取音视频流 博客简介 ....FFMPEG 音视频流 获取流程 ---- FFMPEG 音视频流 AVStream ( 结构体 ) 获取流程 : ① 获取音视频流信息 : avformat_find_stream_info ( )..., 在 【Android FFMPEG 开发】FFMPEG 初始化 ( 网络初始化 | 打开音视频 | 查找音视频流 ) 博客中 , FFMPEG 初始化完毕后 , 获取了音视频流 , 本博客中讲解获取该音视频流对应的编解码器...FFMPEG 获取音视频流 ---- 1 .
string command = "ffmpeg -i D:\\vc\\images\\tanned_part_3600.mp4"; FILE* pPipe = _popen(command.c_str...-2020 the FFmpeg developers 。。。。。...那么换一个没有错误的命令: ffmpeg -i D:\\vc\\images\\tanned_part_3600.mp4 -ss 00:00:00 -vframes 1 -y aaa.jpg 还是不行...ffmpeg -i D:\\vc\\images\\tanned_part_3600.mp4 2>&1 竟然可以了。...然后通过正则获取比如,码率: std::regex bitrate_reg(".
TSINGSEE青犀视频流媒体平台前端不仅仅可以对接摄像头,还可以接入硬盘录像机。...该项目团队选用了ffmpeg来进行观看,本文我们就分享一下实际操作命令和命令参数解析。...简单命令: ffmpeg -i input.mp4 -ss 1:05 -t 10 output.mp4 -ss 5指定从输入视频第1:05秒开始截取,-t 10指明最多截取10秒。 成功输出视频。...但是上面的命令可能会比较慢,更好的命令如下: ffmpeg -ss 1:05 -i input.mp4 -t 10 -c:v copy -c:a copy output.mp4 把-ss 1:05放到-...-c:v 和 -c:a分别指定视频和音频的编码格式。 -c:v copy -c:a copy标示视频与音频的编码不发生改变,而是直接复制,这样会大大提升速度。
炼丹笔记干货 作者:快手社科推荐团队 短视频(比如快手、抖音和视频号等)日益成为人们日常生活中最重要娱乐方式。短视频推荐需要解决的一个基础问题是,如何准确地预估用户对某个视频的观看时长。...用户对一个视频的观看时长受到两方面影响,一是用户对视频内容的满意程度,二是视频本身的长度(duration)。...图二、 (a)视频观看时长和视频长度的关系 图二、 (b)不同时间区间视频分布的变化 为了解决上述的问题, 论文提出使用因果推断的方法消除时长预估任务中的 duration bias 问题。...视频 duration 通过 D->V->W 和 D->W 两条路径影响时长预估,其中 D->W 表明视频 duration 与观看时长具有直接的因果关系,这也是符合预期的,因为相较于短视频,用户更加倾向于在长视频上停留更长的时间...但是,D->V->W 表示曝光视频的 duration 分布会影响观看时长的预估,这主要是因为推荐系统倾向于推荐长视频来提升 app 时长,导致曝光视频中长视频占比过大;而模型训练时长视频会获得比较大的权重
备忘一个使用ffmepg获取视频的宽高时长等信息的代码,是使用ffmepg的api不是通过exe命令行的方式。至于用的ffmepg库和头文件等,我传github和CSDN各一份。地址在最后。...下面是代码,首先: //引入ffmpeg的头文件和lib,自己处理好库的路径 extern "C" { #include "libavcodec/avcodec.h" #include "libavformat...= 0) { printf("无法打开视频文件\n"); return -1; } // 查找视频文件中的流信息 if (avformat_find_stream_info(formatContext...\n"); return -1; } // 获取视频时长 int64_t duration = formatContext->streams[videoStreamIndex]->duration...timeBase.den; int nWidth = codecParameters->width; int nHeight = codecParameters->height; printf("视频时长
一、环境介绍 操作系统: win10 64位 ffmpge: 4.2.2 (官网下载的可执行文件命令) win32下使用FFMPEG 4.2.2库下载地址:https://download.csdn.net.../download/xiaolong1126626497/12321684 二、ffprobe用法 2.1 基本使用: 查看媒体信息 用法: C:/FFMPEG/ffmpeg_x86_4.2.2/bin...\jiyi.mp4 示例: PS D:\> C:/FFMPEG/ffmpeg_x86_4.2.2/bin/ffprobe.exe -i ..../ffmpeg_x86_4.2.2/bin/ffprobe.exe -v quiet -of json -i ....\jiyi.mp4 -show_streams 示例: PS D:\> C:/FFMPEG/ffmpeg_x86_4.2.2/bin/ffprobe.exe -v quiet -of json -i
本次目标: 1)将容器中的音频码流和视频码流分离出来。 2)针对mp4文件中的码流情况进行修复。...我们常规的H264帧数据保存格式是annexb,是具有起始码0x000001或0x00000001;mpeg-ts文件中保存的是视频码流是存在起始码的,而在mp4文件中没有起始码。...H.264视频编码格式主要分为两种形式,即带起始码的H.264码流和不带起始码的H.264码流,其中,前者就是我们比较熟悉的H264、X264;后者就是指AVC1。...AAC码流(mp4a):保存一帧码流数据前,补充相应的adts头; H264码流(avc1):使用h264_mp4toannexb过滤器,对视频码流进行处理。...More:解析h264视频码流 视频播放效果: 原mp4文件: out.h264码流文件: out.aac文件: 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。
一、使用前提 1.确保已经安装ffmepg工具,在Linux命令行中查看ffmepg的版本 ffmpeg -version 我自己安装的是 ffmpeg version 2.8.15 Copyright...(c) 2000-2018 the FFmpeg developers 2.找一个有水印的视频,可以放在当前命令输入的同级目录进行测试 比如1.MP4,一下是我视频的截图 ?...可以从视频中完整截取一张图片,相关软件比如PR,都有视频截取帧的工具。下面是PR生成出来的一张图片,这样会更准确些。 当然也可以自己大概的截图,裁剪下,要保证的视频的分辨率对应。 ?...2.用画图工具,打开视频的截图,计算水印的位置 计算得到,我的视频水印坐标为:50,640....备注:查看ffmpeg命令帮助,man ffmpeg
比如iMovie的成片模版: 经过四天的捣鼓后,喜提成品: 然后,屁颠屁颠发过去给老姐邀功 可是 FFmpeg压缩视频 这小事情,我将清晰度和尺寸降一降,总还行吧。...cut cut cut掉,怎么可以为了压缩一个视频,就购买一个会员呢? 众里寻他千百度 蓦然回首 那人却在 灯火阑珊处 FFmpeg可以满足我方需求。 那么,我们要怎么使用它呢?...改变码率 视频的原码率是 2.1Mb/s ,压缩为 1.5Mb/s ffmpeg -i input.mov -b:v 1.5M output.mp4 -b:v 1.5M : 指定码率 -b:v :指定视频的码率...去除视频声音 ffmpeg -i input.mp4 -vcodec copy -an output.mp4 -an: 去掉音频 -vcodec:视频选项 一般后面加copy表示拷贝 6....提取视频中的音频 ffmpeg -i input.mp4 -acodec copy -vn output.mp3 // -vn: 去掉视频;-acodec: 音频选项, 一般后面加copy表示拷贝 更多内容参考
领取专属 10元无门槛券
手把手带您无忧上云