From afda7391a804c18783409a8146ceed8b5c328f5f Mon Sep 17 00:00:00 2001 From: xufuji456 <839789740@qq.com> Date: Sat, 4 Dec 2021 14:25:14 +0800 Subject: [PATCH] update: extract audio track --- app/src/main/java/com/frank/ffmpeg/util/FFmpegUtil.java | 5 +++-- doc/FFmpeg_command_line.md | 8 ++++++-- doc/JNI_develop_practice.md | 9 +++++---- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/frank/ffmpeg/util/FFmpegUtil.java b/app/src/main/java/com/frank/ffmpeg/util/FFmpegUtil.java index 43fbe6a..8b7d621 100644 --- a/app/src/main/java/com/frank/ffmpeg/util/FFmpegUtil.java +++ b/app/src/main/java/com/frank/ffmpeg/util/FFmpegUtil.java @@ -242,8 +242,9 @@ public class FFmpegUtil { * @return demux audio success or not */ public static String[] extractAudio(String inputPath, String outputPath) { - //-vn: disable video - String extractAudioCmd = "ffmpeg -i %s -acodec copy -vn %s"; + // -vn: disable video + // multi audio track: ffmpeg -i input.mp4 -map 0:1 -vn output.mp3 + String extractAudioCmd = "ffmpeg -i %s -vn %s"; extractAudioCmd = String.format(extractAudioCmd, inputPath, outputPath); return extractAudioCmd.split(" "); } diff --git a/doc/FFmpeg_command_line.md b/doc/FFmpeg_command_line.md index 6526dcf..4abcbf8 100644 --- a/doc/FFmpeg_command_line.md +++ b/doc/FFmpeg_command_line.md @@ -109,8 +109,12 @@ ffmpeg -i input.mp3 -af silencedetect=noise=0.0001 -f null -
ffmpeg -i input.mp3 -af volume=0.5 volume.mp3
### 2.10 抽取音频 -从视频抽取音频,也就是disable视频流、拷贝音频流:
-ffmpeg -i input.mp4 -acodec copy -vn out.mp3
+从视频抽取音频,直接disable视频流:
+ffmpeg -i input.mp4 -vn out.mp3
+从视频抽取音频,disable视频流,音频进行转码:
+ffmpeg -i input.mp4 -acodec aac -vn out.m4a
+从视频抽取音频,如果存在多音轨,可指定某个音轨:
+ffmpeg -i input.mp4 -map 0:1 -vn out.mp3
## 3、视频常见操作 ### 3.1 视频剪切 diff --git a/doc/JNI_develop_practice.md b/doc/JNI_develop_practice.md index 06b5bcd..1ad6c45 100644 --- a/doc/JNI_develop_practice.md +++ b/doc/JNI_develop_practice.md @@ -2,8 +2,9 @@ JNI是Java本地接口,定义Android从应用代码(以Java或kotlin编程语言编写)到本地代码(C/C++编写)交互编译成字节码的一种方式。
文档[Java Native Interface Specification](https://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/jniTOC.html)
-# NDK编译脚本 -### [Android.mk与CMake编译](https://github.com/xufuji456/FFmpegAndroid/blob/master/doc/NDK_compile_shell.md) +### NDK编译脚本 +[Android.mk与CMake编译](https://github.com/xufuji456/FFmpegAndroid/blob/master/doc/NDK_compile_shell.md) -# 相关介绍文章如下: -### [JNI开发规范](https://blog.csdn.net/u011686167/article/details/81784979) \ No newline at end of file +### 相关介绍文章如下: +[NDK编译脚本](https://blog.csdn.net/u011686167/article/details/106458899) +[JNI开发规范](https://blog.csdn.net/u011686167/article/details/81784979) \ No newline at end of file