Skip to content

Commit

Permalink
Move ffmpeg integration from litr-muxers to litr-ffmpeg module
Browse files Browse the repository at this point in the history
  • Loading branch information
izzytwosheds committed Dec 11, 2023
1 parent b10ebca commit dbe09a4
Show file tree
Hide file tree
Showing 36 changed files with 55 additions and 36 deletions.
4 changes: 3 additions & 1 deletion litr-demo/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,9 @@ android {
dependencies {
implementation project(':litr')
implementation project(':litr-filters')
implementation project(':litr-muxers')

// uncomment to experiment with ffmpeg
// implementation project(':litr-ffmpeg')

implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.recyclerview:recyclerview:1.2.0'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import com.linkedin.android.litr.codec.MediaCodecEncoder
import com.linkedin.android.litr.exception.MediaTransformationException
import com.linkedin.android.litr.filter.GlFilter
import com.linkedin.android.litr.io.*
import com.linkedin.android.litr.muxers.NativeMediaMuxerMediaTarget
// import com.linkedin.android.litr.muxers.NativeMediaMuxerMediaTarget
import com.linkedin.android.litr.render.GlVideoRenderer
import java.util.UUID

Expand Down Expand Up @@ -131,20 +131,27 @@ class RecordCameraPresenter(
targetMedia: TargetMedia,
enableNativeMuxer: Boolean
): MediaTarget {
return if (enableNativeMuxer) {
NativeMediaMuxerMediaTarget(
targetMedia.targetFile.path,
2,
0,
MediaMuxer.OutputFormat.MUXER_OUTPUT_MPEG_4
)
} else {
MediaMuxerMediaTarget(
targetMedia.targetFile.path,
2,
0,
MediaMuxer.OutputFormat.MUXER_OUTPUT_MPEG_4
)
}
return MediaMuxerMediaTarget(
targetMedia.targetFile.path,
2,
0,
MediaMuxer.OutputFormat.MUXER_OUTPUT_MPEG_4
)
// remove above code and uncomment if need to experiment with ffmpeg muxer
// return if (enableNativeMuxer) {
// NativeMediaMuxerMediaTarget(
// targetMedia.targetFile.path,
// 2,
// 0,
// MediaMuxer.OutputFormat.MUXER_OUTPUT_MPEG_4
// )
// } else {
// MediaMuxerMediaTarget(
// targetMedia.targetFile.path,
// 2,
// 0,
// MediaMuxer.OutputFormat.MUXER_OUTPUT_MPEG_4
// )
// }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import com.linkedin.android.litr.io.MediaMuxerMediaTarget
import com.linkedin.android.litr.io.MediaRange
import com.linkedin.android.litr.io.MediaSource
import com.linkedin.android.litr.io.MediaTarget
import com.linkedin.android.litr.muxers.NativeMediaMuxerMediaTarget
//import com.linkedin.android.litr.muxers.NativeMediaMuxerMediaTarget
import com.linkedin.android.litr.render.AudioRenderer
import com.linkedin.android.litr.render.GlVideoRenderer
import java.util.UUID
Expand Down Expand Up @@ -156,21 +156,30 @@ class TranscodeVideoGlPresenter(
else
MediaMuxer.OutputFormat.MUXER_OUTPUT_MPEG_4

return if (enableNativeMuxer) {
NativeMediaMuxerMediaTarget(
targetMedia.targetFile.absolutePath,
targetMedia.includedTrackCount,
videoRotation,
outputFormat
)
} else {
MediaMuxerMediaTarget(
context,
Uri.fromFile(targetMedia.targetFile),
targetMedia.includedTrackCount,
videoRotation,
outputFormat
)
}
return MediaMuxerMediaTarget(
context,
Uri.fromFile(targetMedia.targetFile),
targetMedia.includedTrackCount,
videoRotation,
outputFormat
)

// remove above code and uncomment if need to experiment with ffmpeg muxer
// return if (enableNativeMuxer) {
// NativeMediaMuxerMediaTarget(
// targetMedia.targetFile.absolutePath,
// targetMedia.includedTrackCount,
// videoRotation,
// outputFormat
// )
// } else {
// MediaMuxerMediaTarget(
// context,
// Uri.fromFile(targetMedia.targetFile),
// targetMedia.includedTrackCount,
// videoRotation,
// outputFormat
// )
// }
}
}
File renamed without changes.
3 changes: 2 additions & 1 deletion litr-muxers/README.md → litr-ffmpeg/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Litr Muxers module

The Litr Muxers module provides `NativeMediaMuxerMediaTarget`, which uses FFmpeg for muxing
The Litr FFmpeg module provides integration with ffmpeg. Currently, it offers
`NativeMediaMuxerMediaTarget`, which uses FFmpeg for muxing
individual streams into a target file container.

## Build instructions (Linux, macOS)
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion settings.gradle
Original file line number Diff line number Diff line change
@@ -1 +1 @@
include ':litr-demo', ':litr', ':litr-filters', ':litr-muxers'
include ':litr-demo', ':litr', ':litr-filters', ':litr-ffmpeg'

0 comments on commit dbe09a4

Please sign in to comment.