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