java执行ffmpeg命令行_用java调用cmd命令行执行ffmpeg转换视频

本文提供了一个Java程序示例,演示如何通过执行命令行来使用ffmpeg将多种视频格式转换为MP4。程序首先检查输入文件类型,然后根据需要先用mencoder将特定格式(如wmv9、rm、rmvb)转为avi,最后用ffmpeg转换为MP4。
摘要由CSDN通过智能技术生成

不说什么,直接上代码,如有不懂,留言:::

本文经过调试成功,用ffmpeg进行转换的格式有:

avi、mpg、wmv、3gp、mov、MP4、asf、asx、flv,

本程序最终转化成的是MP4

,另外,如果是wmv9、rm、rmvb格式的话,先用mencoder转化成avi

我的工作目录下有以下文件::

dsnative.dll

ffmpeg.exe

ffplay.exe

mencoder.exe

pthreadGC2.dll

package net.concertvideo;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.File;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.OutputStreamWriter;

import java.util.ArrayList;

import java.util.List;

public class ConvertVideo {

public static String Path;

public ConvertVideo( String Path){

if(!checkFile(Path)){

Sy

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Java中接入FFmpeg执行命令,可以使用JNI(Java Native Interface)来调用C/C++代码。 首先,在Java代码中声明native方法来调用C/C++函数。在这个例子中,可以在Java类中添加以下方法声明: ``` public class FFmpegCmd { public static native int exec(int argc, String[] argv); public static native void exit(); } ``` 然后,在C/C++代码中实现这些native方法。可以使用JNI提供的函数来将Java的数据类型转换为C/C++的数据类型,并执行相应的FFmpeg命令。 下面是一个简单的示例代码: ```c #include <jni.h> #include <stdio.h> #include "ffmpeg_cmd.h" // 假设这是你的FFmpeg命令执行的头文件 JNIEXPORT jint JNICALL Java_com_github_xch168_ffmpeg_1cmd_FFmpegCmd_exec(JNIEnv *env, jclass clazz, jint argc, jobjectArray argv) { int i; int ret; char *args[argc]; for (i = 0; i < argc; i++) { jstring string = (*env)->GetObjectArrayElement(env, argv, i); const char *arg = (*env)->GetStringUTFChars(env, string, 0); args[i] = strdup(arg); (*env)->ReleaseStringUTFChars(env, string, arg); } ret = ffmpeg_exec(argc, args); for (i = 0; i < argc; i++) { free(args[i]); } return ret; } JNIEXPORT void JNICALL Java_com_github_xch168_ffmpeg_1cmd_FFmpegCmd_exit(JNIEnv *env, jclass clazz) { ffmpeg_exit(); } ``` 最后,需要将C/C++代码编译为动态链接库(.so文件),并将其与Java代码一起使用。具体的编译和使用细节可能因开发环境而异,请查阅相关的JNI文档和教程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值