├── app ├── .gitignore ├── src │ └── main │ │ ├── res │ │ ├── values │ │ │ ├── strings.xml │ │ │ ├── colors.xml │ │ │ └── themes.xml │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ └── layout │ │ │ └── activity_main.xml │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── xiaoguang │ │ └── widget │ │ └── videocompress │ │ └── demo │ │ └── MainActivity.java ├── proguard-rules.pro └── build.gradle ├── videocompress ├── .gitignore ├── consumer-rules.pro ├── libs │ ├── aspectjrt-1.7.3.jar │ └── isoparser-1.0.6.jar ├── src │ └── main │ │ ├── res │ │ ├── drawable-xxhdpi │ │ │ ├── ic_file_img.png │ │ │ ├── ic_file_pdf.png │ │ │ ├── ic_file_ppt.png │ │ │ ├── ic_file_txt.png │ │ │ ├── ic_file_zip.png │ │ │ ├── ic_file_excel.png │ │ │ ├── ic_file_music.png │ │ │ ├── ic_file_video.png │ │ │ ├── ic_file_word.png │ │ │ └── ic_file_not_found.png │ │ ├── values │ │ │ ├── strings.xml │ │ │ ├── colors.xml │ │ │ └── themes.xml │ │ ├── drawable │ │ │ ├── shape_color_4d000000_radius_16.xml │ │ │ └── shape_color_white_radius_16.xml │ │ └── layout │ │ │ └── dialog_media_loading.xml │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── xiaoguang │ │ └── widget │ │ └── videocompress │ │ ├── core │ │ ├── Sample.java │ │ ├── Mp4Movie.java │ │ ├── VideoCompress.java │ │ ├── InputSurface.java │ │ ├── OutputSurface.java │ │ ├── TextureRenderer.java │ │ ├── Track.java │ │ ├── MP4Builder.java │ │ └── VideoController.java │ │ └── dialog │ │ └── VideoCompressDialog.java ├── build.gradle └── proguard-rules.pro ├── settings.gradle ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── gradle.properties ├── gradlew.bat ├── gradlew └── README.md /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /videocompress/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /videocompress/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app', ':videocompress' 2 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | VideoCompression 3 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITxiaoguang/VideoCompress/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | .idea/ 5 | .DS_Store 6 | /build 7 | /captures 8 | .externalNativeBuild 9 | -------------------------------------------------------------------------------- /videocompress/libs/aspectjrt-1.7.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITxiaoguang/VideoCompress/HEAD/videocompress/libs/aspectjrt-1.7.3.jar -------------------------------------------------------------------------------- /videocompress/libs/isoparser-1.0.6.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITxiaoguang/VideoCompress/HEAD/videocompress/libs/isoparser-1.0.6.jar -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITxiaoguang/VideoCompress/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITxiaoguang/VideoCompress/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /videocompress/src/main/res/drawable-xxhdpi/ic_file_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITxiaoguang/VideoCompress/HEAD/videocompress/src/main/res/drawable-xxhdpi/ic_file_img.png -------------------------------------------------------------------------------- /videocompress/src/main/res/drawable-xxhdpi/ic_file_pdf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITxiaoguang/VideoCompress/HEAD/videocompress/src/main/res/drawable-xxhdpi/ic_file_pdf.png -------------------------------------------------------------------------------- /videocompress/src/main/res/drawable-xxhdpi/ic_file_ppt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITxiaoguang/VideoCompress/HEAD/videocompress/src/main/res/drawable-xxhdpi/ic_file_ppt.png -------------------------------------------------------------------------------- /videocompress/src/main/res/drawable-xxhdpi/ic_file_txt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITxiaoguang/VideoCompress/HEAD/videocompress/src/main/res/drawable-xxhdpi/ic_file_txt.png -------------------------------------------------------------------------------- /videocompress/src/main/res/drawable-xxhdpi/ic_file_zip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITxiaoguang/VideoCompress/HEAD/videocompress/src/main/res/drawable-xxhdpi/ic_file_zip.png -------------------------------------------------------------------------------- /videocompress/src/main/res/drawable-xxhdpi/ic_file_excel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITxiaoguang/VideoCompress/HEAD/videocompress/src/main/res/drawable-xxhdpi/ic_file_excel.png -------------------------------------------------------------------------------- /videocompress/src/main/res/drawable-xxhdpi/ic_file_music.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITxiaoguang/VideoCompress/HEAD/videocompress/src/main/res/drawable-xxhdpi/ic_file_music.png -------------------------------------------------------------------------------- /videocompress/src/main/res/drawable-xxhdpi/ic_file_video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITxiaoguang/VideoCompress/HEAD/videocompress/src/main/res/drawable-xxhdpi/ic_file_video.png -------------------------------------------------------------------------------- /videocompress/src/main/res/drawable-xxhdpi/ic_file_word.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITxiaoguang/VideoCompress/HEAD/videocompress/src/main/res/drawable-xxhdpi/ic_file_word.png -------------------------------------------------------------------------------- /videocompress/src/main/res/drawable-xxhdpi/ic_file_not_found.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITxiaoguang/VideoCompress/HEAD/videocompress/src/main/res/drawable-xxhdpi/ic_file_not_found.png -------------------------------------------------------------------------------- /videocompress/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /videocompress/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 压缩中... 4 | 取消 5 | 取消转码。 6 | 压缩失败。 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FF8048 4 | @android:color/white 5 | @android:color/transparent 6 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Oct 23 09:58:22 CST 2021 2 | distributionBase=GRADLE_USER_HOME 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /videocompress/src/main/res/drawable/shape_color_4d000000_radius_16.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /videocompress/src/main/res/drawable/shape_color_white_radius_16.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /videocompress/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FF8048 4 | @android:color/white 5 | @android:color/transparent 6 | 7 | #111111 8 | 9 | -------------------------------------------------------------------------------- /videocompress/src/main/java/com/xiaoguang/widget/videocompress/core/Sample.java: -------------------------------------------------------------------------------- 1 | package com.xiaoguang.widget.videocompress.core; 2 | 3 | public class Sample { 4 | private long offset = 0; 5 | private long size = 0; 6 | 7 | public Sample(long offset, long size) { 8 | this.offset = offset; 9 | this.size = size; 10 | } 11 | 12 | public long getOffset() { 13 | return offset; 14 | } 15 | 16 | public long getSize() { 17 | return size; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 |