microshow / RxFFmpeg

🔥💥RxFFmpeg 是基于 ( FFmpeg 4.0 + X264 + mp3lame + fdk-aac + opencore-amr + openssl ) 编译的适用于 Android 平台的音视频编辑、视频剪辑的快速处理框架,包含以下功能:视频拼接,转码,压缩,裁剪,片头片尾,分离音视频,变速,添加静态贴纸和gif动态贴纸,添加字幕,添加滤镜,添加背景音乐,加速减速视频,倒放音视频,音频裁剪,变声,混音,图片合成视频,视频解码图片,抖音首页,视频播放器及支持 OpenSSL https 等主流特色功能
4.41k stars 746 forks source link

视频转码,各种格式的视频全部转成mp4 #245

Open JackZhangdaye opened 3 years ago

JackZhangdaye commented 3 years ago

已测试, AVI,RMVB,MOV,WMV,FLV,3GP,H264,MPG,VOB
其中 RMVB,WMV,MPG,VOB转MP4的时候失败,出现两个错误,会导致崩溃 请问这是手机硬件不支持,还是ffmpeg不支持呢。。 1 2

JackZhangdaye commented 3 years ago

String ffmpeg = "ffmpeg -i /storage/emulated/0/Pictures/WeiXin/10分钟视频.vob" + " /storage/emulated/0/Pictures/WeiXin/vob转.mp4"; String[] commands = ffmpeg.split(" "); RxFFmpegInvoke.getInstance() .runCommandRxJava(commands) .subscribe(new RxFFmpegSubscriber() { @Override public void onFinish() { Log.i(TAG, "onFinish: "); }

                        @Override
                        public void onProgress(int progress, long progressTime) {
                            Log.i(TAG, "onProgress: ");
                        }

                        @Override
                        public void onCancel() {
                            Log.i(TAG, "onCancel: ");
                        }

                        @Override
                        public void onError(String message) {
                            Log.i(TAG, "onError: "+message);
                        }
                    });
microshow commented 3 years ago

有些格式禁用了

nxnyk commented 3 years ago

String ffmpeg = "ffmpeg -i /storage/emulated/0/Pictures/WeiXin/10分钟视频.vob" + " /storage/emulated/0/Pictures/WeiXin/vob转.mp4"; String[] commands = ffmpeg.split(" "); RxFFmpegInvoke.getInstance() .runCommandRxJava(commands) .subscribe(new RxFFmpegSubscriber() { @override public void onFinish() { Log.i(TAG, "onFinish: "); }

                        @Override
                        public void onProgress(int progress, long progressTime) {
                            Log.i(TAG, "onProgress: ");
                        }

                        @Override
                        public void onCancel() {
                            Log.i(TAG, "onCancel: ");
                        }

                        @Override
                        public void onError(String message) {
                            Log.i(TAG, "onError: "+message);
                        }
                    });

有办法捕捉这些异常嘛?每次导致app闪退太不友好了