精华内容
下载资源
问答
  • 获取音频/视频时长,以及视频截图等信息的方法 ............................................
  • 实现过程:1、获取视频时长获取视频时长的目的是为了设置等待时长(见步骤2)1)获取视频下载URL a、发送post请求,获取token 项目中,发送的post请求header中,content-type为application/json,忽略了这一点,...

    项目中涉及到视频播放,当视频播放完毕后弹出一个弹窗,可以点击提交。

    实现过程:

    1、获取视频时长

    获取视频时长的目的是为了设置等待时长(见步骤2)

    1)获取视频下载URL

        a、发送post请求,获取token

            项目中,发送的post请求header中,content-type为application/json,忽略了这一点,发送出去的post请求一直报400错误码,后来发现到header中的content-type,于是对post请求的body数据进行json格式化,即:使用python内置的json库,对data进行处理:json.dumps(data),post中的data使用上述处理后的数据后,返回码不再报400错误,返回200了。


        b、获取视频URL

        这里就是发了两个request,两个request的params中均需携带a中所获取到的token:

        第一request获取到id,第二个request中的params需要用到第一个request获取到的id。第二个request返回的数据中包含有视频URL

    2)下载视频

        根据1)中b所获取到的视频URL,发送request去下载视频。



    3)获取视频时长

        这里用到了第三方库:moviepy,下列代码执行时,会检测本地是否存在ffmpeg-win32-v3.2.4.exe,如果没有,会自动下载保存到默认位置:C:\Users\xxx\AppData\Local\imageio\ffmpeg\ffmpeg-win32-v3.2.4.exe

    FFmpeg可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序,有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。


    2、等待视频播放完毕

        等待时长为视频时长+2s

        定位弹窗


    3、出现弹窗,则点击,如到达等待时长后仍未弹出弹窗,则打印超时信息


    展开全文
  • Android开发 获取视频中的信息(例如预览图或视频时长) 前言  在Android里获取视频的信息主要依靠MediaMetadataRetriever实现 获取最佳视频预览图 所谓的最佳就是MediaMetadataRetriever自己计算的 ...

    前言

      在Android里获取视频的信息主要依靠MediaMetadataRetriever实现

    获取最佳视频预览图

    所谓的最佳就是MediaMetadataRetriever自己计算的

        /**
         * 获取视频缩略图
         * @param vedioFile
         * @return
         */
        public static Bitmap getVedioThumbnail(File vedioFile){
            if (!vedioFile.exists()){
                L.e("视频文件不存在");
                return null;
            }
    
            MediaMetadataRetriever retriever = new MediaMetadataRetriever();
            retriever.setDataSource(vedioFile.getAbsolutePath());
            Bitmap bitmap = retriever.getFrameAtTime();
            return bitmap;
    
        }

    如果你的视频文件是在assets文件里

    AssetFileDescriptor adf = context.getAssets().openFd(vedioFile.getAbsolutePath());//如果是app assets目录的视频文件
    retriever.setDataSource(adf.getFileDescriptor());

    获取指定时间位置的视频预览图

    /**
         * 获取视频缩略图
         * @param vedioFile
         * @return
         */
        public static Bitmap getVedioThumbnail(File vedioFile){
            if (!vedioFile.exists()){
                L.e("视频文件不存在");
                return null;
            }
    
            MediaMetadataRetriever retriever = new MediaMetadataRetriever();
            retriever.setDataSource(vedioFile.getAbsolutePath());
            Bitmap bitmap = retriever.getFrameAtTime(1000);//参数为毫秒,就是返回靠近这个时间的帧图
            return bitmap;
    
        }

    获取视频播放时长

        /**
         * 返回视频播放总时长
         * @param vedioFile
         * @return
         */
        public static Long getVedioTotalTime(File vedioFile){
            if (!vedioFile.exists()){
                L.e("视频文件不存在");
                return null;
            }
            MediaMetadataRetriever retriever = new MediaMetadataRetriever();
            retriever.setDataSource(vedioFile.getAbsolutePath());
            String timeString =  retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
            Long time = Long.valueOf(timeString);
            return time;
    
        }

    获取其他信息参考表

        / **
        *元数据键,用于检索描述的数字字符串
        *原始录音中音频数据源的顺序。
        * /
        public static final int METADATA_KEY_CD_TRACK_NUMBER = 0;
        / **
        元数据键,用于检索有关专辑标题的信息数据源。
        * /
        public static final int METADATA_KEY_ALBUM = 1;
        / **
        元数据键,用于检索有关艺术家的信息数据源。
        * /
        public static final int METADATA_KEY_ARTIST = 2;
        / **
        元数据键,用于检索有关作者的信息数据源。
        * /
        public static final int METADATA_KEY_AUTHOR = 3;
        / **
        元数据键,用于检索有关作曲家的信息数据源。
        * /
        public static final int METADATA_KEY_COMPOSER = 4;
        / **
        用于检索创建数据源的日期的元数据键或修改。
        * /
        public static final int METADATA_KEY_DATE = 5;
        / **
        元数据键,用于检索数据的内容类型或类型资源。
        * /
        public static final int METADATA_KEY_GENRE = 6;
        / **
        用于检索数据源标题的元数据键。
        * /
        public static final int METADATA_KEY_TITLE = 7;
        / **
        元数据键,用于检索创建数据源的年份或修改。
        * /
        public static final int METADATA_KEY_YEAR = 8;
        / **
        元数据键,用于检索数据源的播放持续时间。
        * /
        public static final int METADATA_KEY_DURATION = 9;
        / **
        用于检索音轨数量的元数据键,例如音频,视频,文本,在数据源中,如mp4或3gpp文件。
        * /
        public static final int METADATA_KEY_NUM_TRACKS = 10;
        / **
        用于检索作者信息的元数据键(例如词作者)的数据源。
        * /
        public static final int METADATA_KEY_WRITER = 11;
        / **
        *于检索数据源的mime类型的元数据键。一些
        示例mime类型包括:“video / mp4”,“audio / mp4”,“audio / amr-wb”,等
        * /
        public static final int METADATA_KEY_MIMETYPE = 12;
        / **
        元数据键,用于检索有关表演者的信息
        与数据源关联的艺术家。
        * /
        public static final int METADATA_KEY_ALBUMARTIST = 13;
        / **
        元数据键,用于检索描述哪个的数字字符串
        音频数据源来自的一部分。
        * /
        public static final int METADATA_KEY_DISC_NUMBER = 14;
        / **
        用于检索音乐专辑编辑状态的元数据键。
        * /
        public static final int METADATA_KEY_COMPILATION = 15;
        / **
        *如果此密钥存在,则媒体包含音频内容。
        * /
        public static final int METADATA_KEY_HAS_AUDIO = 16;
        / **
        如果此密钥存在,则媒体包含视频内容。
        * /
        public static final int METADATA_KEY_HAS_VIDEO = 17;
        / **
        如果媒体包含视频,此密钥将检索其宽度。
        * /
        public static final int METADATA_KEY_VIDEO_WIDTH = 18;
        / **
        如果媒体包含视频,此密钥将检索其高度。
        * /
        public static final int METADATA_KEY_VIDEO_HEIGHT = 19;
        / **
        *此密钥检索平均比特率(以位/秒为单位)(如果可用)。
        * /
        public static final int METADATA_KEY_BITRATE = 20;
        / **
        此键检索文本轨道的语言代码(如果有)。如果存在多个文本轨迹,则返回值将如下所示:
        * /
        public static final int METADATA_KEY_TIMED_TEXT_LANGUAGES = 21;
        / **
        如果此密钥存在,则媒体受到保护。
        * /
        public static final int METADATA_KEY_IS_DRM = 22;
        / **
        此密钥检索位置信息(如果有)。
        位置应根据ISO-6709标准指定一个mp4 / 3gp的盒子“@xyz”。经度为-90度和纬度的位置
        例如,180度的将被检索为“-90.0000 + 180.0000”。
        * /
        public static final int METADATA_KEY_LOCATION = 23;
        / **
        此键以度为单位检索视频旋转角度(如果可用)。
        视频旋转角度可以是0度,90度,180度或270度。
        * /
        public static final int METADATA_KEY_VIDEO_ROTATION = 24;
        / **
        *此键检索原始捕获帧速率(如果是)可用。捕获帧率将是一个浮点号码。
        * /
        public static final int METADATA_KEY_CAPTURE_FRAMERATE = 25;
        / **
        如果此键存在,则媒体包含静止图像内容。
        * /
        public static final int METADATA_KEY_HAS_IMAGE = 26;
        / **
        *如果媒体包含静止图像,则此密钥将检索该编号静止图像。
        * /
        public static final int METADATA_KEY_IMAGE_COUNT = 27;
        / **
        *如果媒体包含静止图像,则此键将检索图像主图像的索引。
        * /
        public static final int METADATA_KEY_IMAGE_PRIMARY = 28;
        / **
        *如果媒体包含静止图像,则此键检索宽度主图像。
        * /
        public static final int METADATA_KEY_IMAGE_WIDTH = 29;
        / **
        *如果媒体包含静止图像,此键将检索高度主图像。
        * /
        public static final int METADATA_KEY_IMAGE_HEIGHT = 30;
        / **
        *如果媒体包含静止图像,则此键将检索旋转主图像的角度(顺时针方向)。图像旋转角度必须是0度,90度,180度或270度之一。
        * /
        public static final int METADATA_KEY_IMAGE_ROTATION = 31;
        / **
        *如果媒体包含视频且此密钥存在,则会检索视频序列中的总帧数。
        * /
        public static final int METADATA_KEY_VIDEO_FRAME_COUNT = 32;

     

    posted on 2019-06-20 12:21  观心静 阅读( ...) 评论( ...) 编辑 收藏

    转载于:https://www.cnblogs.com/guanxinjing/p/11057994.html

    展开全文
  • 已知本地视频地址,得到视频时长

    千次阅读 2015-10-30 13:43:01
    我的情况是这样的,拍摄好一段视频后,保存到本地,并且在上传之前判断时长,我这里是时长要不少于5秒,不大于15秒,符合这个时长才能...//判断视频时长是否符合 private boolean judgeVideoTime(String vediopahth) {

    我的情况是这样的,拍摄好一段视频后,保存到本地,并且在上传之前判断时长,我这里是时长要不少于5秒,不大于15秒,符合这个时长才能上传。


    然后我开始转向度娘,真的搜了好久,百度上的资料我基本上看了一遍,stackflow也逛了一遍……


    //判断视频时长是否符合
    	private boolean judgeVideoTime(String vediopahth) {
    		
    		int seconds=0;
    		String[] projection = new String[]{MediaStore.Video.Media.DURATION};
    	    Cursor cursor = VedioFinishActivity.this.getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI
    	    		, projection, MediaStore.Video.Media.DATA+"='"+vediopahth+"'", null, null);  
    	         if (cursor != null){
    	        	 if(cursor.getCount()==1){
    
    
    	        	 cursor.moveToFirst();
    	        	 long duration=0;
    	        	 if (cursor.moveToFirst()) {
    	        		 do{
    	        			  duration = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATION)); 
    	        		 }while (cursor.moveToNext());
    	        		 }
    	        	 seconds=(int)duration/1000;
    
    
    	        	 }else {
    	        		 Mytoast.makeText(this, "视频文件出错", 1).show();
    				}
    
    
    	                }else {
    	                	 Mytoast.makeText(this, "cuesor为空", 1).show();
    					}
    	         
    	         cursor.close();
    	         
    	         if(seconds>=5){
    	        	 return true;
    	         }else {
    	        	 return false;
    			}
    	}
    



    解释一下,这个是返回布尔值的一个方法,传入的参数videopath是视频拍完之后存到本地的地址。再解释一下query这个方法:首先要得到ContentResolver,

    ContentResolver直译为内容解析器,代码里就是通过VedioFinishActivity.this.getContentResolver()来得到实例,Android中程序间数据的共享是通过Provider/Resolver进行的。提供数据(内容)的就叫Provider,Resovler提供接口对这个内容进行解读。

    根据Android文档,

    public final Cursor query (Uri uri, String[] projection,String selection,String[] selectionArgs, StringsortOrder)

    第一个参数,uri,rui是什么呢?好吧,上面我们提到了Android提供内容的叫Provider,那么在Android中怎么区分各个Provider?有提供联系人的,有提供图片的等等。所以就需要有一个唯一的标识来标识这个Provider,Uri就是这个标识, MediaStore.Video.Media.EXTERNAL_CONTENT_URI 这里我要查询视频,这个uri就是视频内容的提供者;


    第二个参数,这个参数告诉Provider要返回的内容(列Column),我只要视频的时长,但是参数中是String[]格式,表示你可以拿到很多你想要的数据,比如视频的修改时间啊,文件大小,标题啊等等,我只要时长,所以String[] projection = new String[]{MediaStore.Video.Media.DURATION};


    第三个参数,selection,设置条件。null表示不进行筛选。我有个视频的本地路径,这可以唯一表示一个视频;


    第三个参数的地方我写MediaStore.Video.Media.DATA+"='"+vediopahth+"'",其中还有MediaStore.Video.Media.CONTENT_TYPE,MediaStore.Video.Media._ID,MediaStore.Video.Media.SIZE, MediaStore.Video.Media.TITLE等一些参数,看名字可以看出分别还能有内容类型,id,大小,标题这些,参数还有很多,但是我当时真心不知道data是指路径,于是郁闷了好久。


    第四个参数,selectionArgs,这个参数是要配合第三个参数使用,如果你在第三个参数里面有?,那么你在selectionArgs写的数据就会替换掉?跟sql语句很像,因为我有绝对路径,没有就是没有,所以我设置了null;


    第五个参数,sortOrder,排序,相当于SQL语句中的Order by。如果想要结果按照ID的降序排列: 列明+升降序类型就行。例如MediaStore.Video.Media.SIZE+“DESC”。我这找到的话就只有一个,所以这个也设为null;


    后来遇到一个问题,就是拍摄好的视频没办法及时更新到视频库。意思就是我用我的项目录好视频然后也拿到了视频的绝对路径,视频本身是已经存在了,但是我进入图库里,相应目录下没有找到这个视频。所以我在判断时长之前还要手动更新一下图库。

    关于这个问题网上有很多方法:

    这里我说三个方法:

    先普及一下uri:

    Uri代表要操作的数据,Android上可用的每种资源 - 图像、视频片段等都可以用Uri来表示。Android平台而言,URI主要分三个部分:

    1. scheme

    2. authority 

    3. path

    我们很经常需要解析Uri,并从Uri中获取数据。

    方法一:更新相关文件

    Intent scanIntent = new Intent(Intent.Intent.ACTION_MEDIA_MOUNTED);
            scanIntent.setData(Uri.parse(文件 ));
            this.sendBroadcast(scanIntent);

    方法二:更新单个文件

    前面提到我已经有了视频的路径,就是这里的filePath,所以我用了这个方法。要在判断时长之前;

    Intent scanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
            scanIntent.setData(Uri.fromFile(new File(filePath)));
            ctx.sendBroadcast(scanIntent);

    在项目里的代码块:

    public void scanFileAsync(Context ctx, String filePath) {
            Intent scanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
            scanIntent.setData(Uri.fromFile(new File(filePath)));
            ctx.sendBroadcast(scanIntent);
     }
    方法三:提供一种思路和解决方案吧,试了一下报错了,但是为了能有技术成长(多凑字数),我先贴出来好吗


    private MediaScannerConnection mediaScannerConnection= null;
    		MediaScannerConnectionClient  client=new MediaScannerConnectionClient() {
    		        
    		        public void onScanCompleted(String path, Uri uri) {
    		            // TODO Auto-generated method stub
    		            mediaScannerConnection.disconnect();
    		            Log.d("tag", "onScanCompleted");
    		        }
    		        
    		        public void onMediaScannerConnected() {
    		            // TODO Auto-generated method stub
    		           Log.d("tag", "onMediaScannerConnected");
    		        }
    		    };
    		    
    		 mediaScannerConnection=new MediaScannerConnection(this, client);
    		//获取连接
    		 mediaScannerConnection.connect();
    		 //扫描指定路径下的文件到系统数据库中
    		 scanfile(new File(Environment.getExternalStorageDirectory() + File.separator + "xxx"));
    		 
    		 
    		 mediaScannerConnection.disconnect();
    	
    
    	private void scanfile(File f) {
    
            if(f.isDirectory()){
                File[] files=f.listFiles();//将指定文件夹下面的文件全部列出来
                if(files!=null){
                    for(int i=0;i<files.length;i++){
                        if(files[i].isDirectory()){ 
                            scanfile(files[i]);
                        }else
                        {//调用mediaScannerConnection.scanFile()方法,更新指定类型的文件到数据库中
                             mediaScannerConnection.scanFile(files[i].getAbsolutePath(), "audio/mpeg");
                        }
                    }
                }
            }
    	}


    解决问题了,花了大半天……

    展开全文
  • ffmpeg调整视频时长

    千次阅读 2020-03-13 19:22:41
    需要让老师见到的文件信息中的视频时长变为10分钟。 搜到的软件很难自定义加速比。这个问题可以通过ffmpeg解决。具体来说,改变视频流的速度setpts滤波器,需要将视频流和音频流同步调整。 ffmpeg -i input.MOV -...

    由于社会问题,本学期的一门课程需要上传一份8-10分钟的视频讲解。而自己录了一份10分半的视频,又懒得再录(果然懒惰是技术进步的动力)。需要让老师见到的文件信息中的视频时长变为10分钟。

    搜到的软件很难自定义加速比。这个问题可以通过ffmpeg解决。具体来说,改变视频流的速度setpts滤波器,需要将视频流和音频流同步调整。

    ffmpeg -i input.MOV -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" video.mp4

    相应调整上述代码中的文件名和加速系数即可。需注意的是,调整视频流速度的setpts和调整音频流的atempo应是互为倒数的,这样才能保证新视频里画面和声音同步。

    另一个问题是系统限制上传视频应小于500MB,iphone默认的1920*1080会超过500MB。这个问题比较容易解决,直接调整分辨率即可:

    ffmpeg -i video.mp4 -vf scale=1080:720 video_new.mp4

     

    参考:

    https://www.5yun.org/ffmpeg-gai-bian-shi-pin-bo-fang-su-du.html

    展开全文
  • html5读取网页视频时长

    万次阅读 2015-03-27 13:03:22
    html5读取网页视频时长
  • 使用工具ffmpeg.exe获取指定文件夹下各视频文件时长
  • 今天小编给大家分享一款剪辑工具——视频剪辑高手,下面介绍其中的两种缩短视频时长的方法。 原视频效果: 将需要剪辑的视频都存放在同一文件夹上 双击原视频查看,该视频的播放时长较长,可以说明下面的新视频剪辑...
  • 这是本人的第一个博客,今天主要说明video的用的较少的一些功能,像play,paused这些属性或者...获取视频时长是最基本也最简单的,通过video.duration,以秒为单位,但该属性放在任何监听事件之前并不能拿到真实的值...
  • 获取HTML5视频时长的方法

    千次阅读 2016-01-22 13:20:41
    HTML5视频上我们可以自定义播放控制和现实效果,我们还可以在线获取视频的各种信息,比如今天要说的如果获取视频时长信息。 JavaScript代码 video元素有一个duration属性,它表示的是视频时长的秒数,...
  • java获取视频播放时长

    千次阅读 2015-07-23 10:45:41
    System.out.println("视频格式 ===" + re.group(2)); System.out.println("分辨率 ==" + re.group(3)); } Pattern patternAudio = compiler.compile(regexAudio, Perl5Compiler.CASE_...
  • 照片库中的一个单独的资源(狭隘可以理解为一张图或则一段视频),以元数据的方式提供,包含所有该资源的信息(例如:唯一标识、创建时间、大小、类型、地点、是否被标记为喜欢等) 用来获取照片库中的PHAsset对象 判断...
  • 最完整获取视频时长,以及将MultipartFile转化成File的工具类(原创) 需要引入jar包 下载地址 http://www.sauronsoftware.it/projects/jave/download.php maven首先要引入 jave &amp;amp;amp;amp;lt;...
  • //MultipartFile转为file File f = null; try { f = File.createTempFile("tmp", suffix); file.transferTo(f); f.deleteOnExit(); //获取视频时长...
  • Java 获取音视频文件时长方法

    万次阅读 2018-03-21 18:11:13
    在项目开发过程中,需要获取音视频文件时长。查询资料后发现 JAVE能够完美得到想要的结果,JAVE项目简介如下:The JAVE (Java Audio Video Encoder) library is Java wrapper on the ffmpeg project. Developers can...
  • Qt显示视频时长

    千次阅读 2011-08-23 16:45:15
    Qt显示导入视频的总时长需要通过Opencv来实现。。。  QTime timer;  int fps = cvGetCaptureProperty(pCapture, CV_CAP_PROP_FPS);  int totalFrames = cvGetCapture
  • 项目有聊天功能,需要发送MP4文件,如果MP4文件本地没有,则需要URL下载到本地,完后发送MP4视频文件,这时候需要MP4视频文件的时长,和视频的长宽,获取方法很简单: 获取视频,生成file文件: File file = new ...
  • Android 获取视频音频的时长的方法

    千次阅读 2019-08-29 15:25:53
    //选择图片、视频、音频第三方图片选择器,glide 4.5.0将代替glide:3.7.0,需修改写法 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.2.3' 相关代码: pr...
  • 需求:有时候我们需要后端保存视频播放时长 上传之前的回调函数,不同ui框架具体查看api //上传之前回调 uploadBefore(file, done, loading, column) { console.log(file, column) //如果你想修改file文件,由于...
  • 视频数据的时长计算方式

    千次阅读 2018-10-07 10:30:51
    原文:  javax.media Interface Clock All Known Subinterfaces: Controller, Player, Processor public interface Clock The Clock interface is implemented by objects that support the Java Media time ...
  • 使用ffmpeg读取flv视频时长

    万次阅读 2011-04-18 11:40:00
    使用ffmpeg时总会遇到到在读取flv视频时读不到总时长,方法如下: <br /> int seconds = pFormatCtx->streams[videoStream]->duration*pFormatCtx->streams[videoStream]->time_base.num/pFormatCtx->streams...
  • 在调用系统Video时,想控制录制视频的大小与时长,可以根据下面的案例试试: public static void recordVideo(Context context, int limit_time, int size) { Intent intent = new Intent(); intent.setAction...
  • 我现在已经实现正确录制视频,但是我想将录制视频的时间修改为30秒,不知道应该怎么实现? 谢谢
  • vue + elementUI Upload 上传,限制视频上传格式、尺寸、时长 HTML // An highlighted block <el-upload ref="uploadVideo" action="no" :show-file-list="false" :auto-upload="true" :before-upload=...
  • 使用暴力猴插件管理器,添加下列脚本,实现自动刷课(不会下载安装的我给整了份视频教程,包括需要用的的插件都放在里边) 链接:https://wws.lanzous.com/b01hkr0qh 因为某些原因,应用商店是打不开的,所以这里...
  • 2>总时长加载:解析 audio.duration 来获取总时长,会有部分浏览器兼容问题,下面列举部分兼容方式。 3>点击跳转进度:获取当前的 鼠标点击位置【e.pageX】 - 进度条.offsetLeft【相对于它的直接父元素 的 偏移量】...
  • Qt使用MediaInfo库获取媒体文件分辨率时长信息方法示例 之前项目中是使用ffmpeg获取图片视频分辨率的方法,大部分都能成功。但如果图片分辨率非常大,就会获取失败,虽然可以用QImageReader获取大图片的分辨率,但...
  • java如何获取视频的长宽和大小

    千次阅读 2019-03-19 10:53:04
    随着5G的普及,产生的视频会越来越多,程序中处理视频的需求也会趋于普及,在视频处理方面,获取视频时长,格式,长度和高度将是最基本的要求,那么java如何获取视频的这些基本信息呢? 一,预备阶段 视频处理需要用到...
  • 因为需要计算一个AVI文件的播放时间所以看一下AVI文件头所包涵的信息   下面一个结构框图   "avih"子块: typedefstruct_avimainheader{  FOURCC fcc;//必须为‘avih’  DWORD cb;//本数据结构的大小,...
  • 随着设备性能提高,视频文件越来越大了。...通过python脚本统计指定目录(及其子目录)下视频文件的 大小、时长、压缩率(笔者先简单用大小除以时长),输出至excel。如此便可将压缩率较低的文件划分...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 145,775
精华内容 58,310
关键字:

修改视频时长信息