​ This framework allows developers to quickly manipulate audio and video splicing operations.

Related tags

Video MTrack
Overview

MTrack

​ This framework allows developers to quickly manipulate audio and video splicing operations.We welcome your feedback in issues and pull requests.

​ Thanks to all of our contributors.

Introduction

​ In audio and video development, developers often splice audio and video. In the process of splicing often encounter some universal problems, MTrack provides a convenient splicing audio and video operation interface, will be public error processing package. Easy for developers to splice in the project.

  • Audio tail track
  • Audio tail gap track
  • ReVideo tail track
  • Video tail gap track
  • Image tail track

Install

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'MyApp' do
    use_frameworks!

    pod'Paintinglite', :git =>'https://github.com/CreaterOS/MTrack.git'#, :tag => '2.1.3'
end
pod install

Usage

1. Audio

  1. Bundle Name

    ​ Use the NSBundle load audio resources,need to enter an audio name with a type suffix. The audio type support MP3, WAV, or CAF. You can perform required operations in the callback. ​ Export video resources by passing the export path.Export type is M4A.

    MAudioTrackAudioManager *trackAudioManager = [MAudioTrackAudioManager shared];
    [trackAudioManager trackAudiosWithBundleForNames:@[@"1638.mp3",@"11582.mp3"] completeHandler:^(BOOL flag) {
      if (flag) {
        // Finish
      }
    }];
    [trackAudioManager exportWithPath:path completeHandler:nil];

    ​ If you want to add a space time to the concatenation process, you can pass in CMTime through the array, and MAudioTrackAudioManager will automatically add a space time between the two sounds directly for you.

    MAudioTrackAudioManager *trackAudioManager = [MAudioTrackAudioManager shared];
    [trackAudioManager trackAudiosWithBundleForNames:@[@"1638.mp3",@"11582.mp3"] spaceTimes:@[[NSValue valueWithCMTime:CMTimeMake(5.0, 1.0)]] completeHandler:^(BOOL flag) {
    if (flag) {
    // Finish
    }
    }];
    [trackAudioManager exportWithPath:path completeHandler:nil];
  2. Path

    Use the absolute path load audio resources,need to enter an audio name with a type suffix.

    MAudioTrackAudioManager *trackAudioManager = [MAudioTrackAudioManager shared];
    [trackAudioManager trackAudiosWithPathForNames:(NSArray<NSString *> * _Nonnull) completeHandler:^(BOOL flag) {
    }];
    [trackAudioManager exportWithPath:path completeHandler:nil];
    MAudioTrackAudioManager *trackAudioManager = [MAudioTrackAudioManager shared];
    [trackAudioManager trackAudiosWithPathForNames:(NSArray<NSString *> * _Nonnull) spaceTimes:(NSArray<NSValue *> * _Nullable) completeHandler:^(BOOL flag) {
    }];
    [trackAudioManager exportWithPath:path completeHandler:nil];
  3. URL

    Use the url load audio resources,need to enter an audio name with a type suffix.

    MAudioTrackAudioManager *trackAudioManager = [MAudioTrackAudioManager shared];
    [trackAudioManager trackAudiosWithURLForNames:(NSArray<NSString *> * _Nonnull) completeHandler:^(BOOL flag) {
    }];
    [trackAudioManager exportWithPath:path completeHandler:nil];
    MAudioTrackAudioManager *trackAudioManager = [MAudioTrackAudioManager shared];
    [trackAudioManager trackAudiosWithURLForNames:(NSArray<NSString *> * _Nonnull) spaceTimes:(NSArray<NSValue *> * _Nullable) completeHandler:^(BOOL flag) {
    }];
    [trackAudioManager exportWithPath:path completeHandler:nil]

2. Video

  1. Bundle Name

    ​ Use the NSBundle load video resources,need to enter an video name with a type suffix. The video type support MP4. You can perform required operations in the callback. ​ Export video resources by passing the export path.Export type is MP4.

    MVideoTrackVideoManager *videoTrackVideoManager = [MVideoTrackVideoManager shared];
    [videoTrackVideoManager trackVideoWithBundleForNames:@[@"01.mp4",@"02.mp4"] completeHandler:^(BOOL flag) {
    if (flag) {
    // Finish
    }
    }];
    [videoTrackVideoManager exportWithPath:path completeHandler:nil];
  2. Path

    Use the absolute path load video resources,need to enter an video name with a type suffix.

    MVideoTrackVideoManager *videoTrackVideoManager = [MVideoTrackVideoManager shared];
    [videoTrackVideoManager trackVideoWithPathForNames:(NSArray<NSString *> * _Nonnull) completeHandler:^(BOOL flag) {
    }];
    [videoTrackVideoManager exportWithPath:path completeHandler:nil];
  3. URL

    Use the url load video resources,need to enter an video name with a type suffix.

    MVideoTrackVideoManager *videoTrackVideoManager = [MVideoTrackVideoManager shared];
    [videoTrackVideoManager trackVideoWithURLForNames:(NSArray<NSString *> * _Nonnull) completeHandler:^(BOOL flag) {
    }];
    [videoTrackVideoManager exportWithPath:path completeHandler:nil];

3.VideoTrackAudio

Sets the audio scope

​ Use setMode: method to set duration baseline with Audio or Video.

kDurationBaselineModeWithAudio

​ The duration of the spliced audio depends on the audio length

kDurationBaselineModeWithVideo

​ The duration of the spliced audio depends on the video length

Use kDurationBaselineModeWithVideo and set setIsClipDuration is YES equals to kDurationBaselineModeWithAudio.

  1. Bundle Name

    ​ Use the NSBundle load video resources and audio resources,need to enter an video name with a type suffix and audio name with a type suffix. The video type support MP4,audio type support MP3,WAV,M4A etc. You can perform required operations in the callback. ​ Export video resources by passing the export path.Export type is MP4.

    MVideoTrackAudioManager *videoTrackAudioManager = [MVideoTrackAudioManager shared];
    [videoTrackAudioManager trackVideoWithBundleForNames:@[@"01.mp4",@"02.mp4"] audioWithBundleNames:@[@"audio.mp3"] completeHandler:^(BOOL flag) {
    if (flag) {
    // Finish
    }
    }];
    [videoTrackAudioManager exportWithPath:path completeHandler:nil];
  2. Path

    ​ Use the absolute path load video resources and audio resources,need to enter an video name with a type suffix and audio name with a type suffix.

    MVideoTrackAudioManager *videoTrackAudioManager = [MVideoTrackAudioManager shared];
    [videoTrackAudioManager trackVideoWithPathForNames:(NSArray<NSString *> * _Nonnull) audioWithPathNames:(NSArray<NSString *> * _Nonnull) completeHandler:^(BOOL flag) {
    }];
    [videoTrackAudioManager exportWithPath:path completeHandler:nil];
  3. URL

    ​ Use the url load video resources and audio resources,need to enter an video name with a type suffix and audio name with a type suffix.

    MVideoTrackAudioManager *videoTrackAudioManager = [MVideoTrackAudioManager shared];
    [videoTrackAudioManager trackVideoWithURLForNames:(NSArray<NSString *> * _Nonnull) audioWithURLNames:(NSArray<NSString *> * _Nonnull) completeHandler:^(BOOL flag) {
    }];
    [videoTrackAudioManager exportWithPath:path completeHandler:nil];

4. Photo

​ Use MPhotoTrackPhotoManager pass in multiple pictures to be combined and set the display time of each picture. Here, the time is applied to the display length of all pictures.

MPhotoTrackPhotoManager *photoTrackPhotoManager = [MPhotoTrackPhotoManager shared];
[photoTrackPhotoManager trackPhotos:(nonnull NSArray
    *) 
   duration:(
   NSUInteger)duration];
[photoTrackPhotoManager 
   exportWithPath:path 
   completeHandler:
   nil];
  

Maintainers

@CreaterOS

License

MIT License

Contribute to this project

If you have a feature request or bug report, please feel free to send [email protected] to upload the problem, and we will provide you with revisions and help as soon as possible. Thank you very much for your support.

Security Disclosure

If you have found the MTrack security vulnerabilities and vulnerabilities that need to be modified, you should email them to [email protected] as soon as possible. thank you for your support.

You might also like...
ABMediaView can display images, videos, as well as now GIFs and Audio!
ABMediaView can display images, videos, as well as now GIFs and Audio!

Media view which subclasses UIImageView, and can display & load images, videos, GIFs, and audio and from the web, and has functionality to minimize from fullscreen, as well as show GIF previews for videos.

A reactive audio player for iOS using RxSwift
A reactive audio player for iOS using RxSwift

ESAudioPlayer: A reactive audio player for iOS ESAudioPlayer is a reactive audio player for iOS using RxSwift. It provides basic audio management feat

A video composition framework build on top of AVFoundation. It's simple to use and easy to extend.
A video composition framework build on top of AVFoundation. It's simple to use and easy to extend.

A high-level video composition framework build on top of AVFoundation. It's simple to use and easy to extend. Use it and make life easier if you are implementing video composition feature.

Swift Package used for video where I demonstrate how to extract a package to a local framework and modify it.
Swift Package used for video where I demonstrate how to extract a package to a local framework and modify it.

SegmentedPicker NOTE: This sample code is taken from the article by Frank Jia in his article titled Build a Custom iOS Segmented Control With SwiftUI

A SwiftUI framework which makes it easy to integrate Video Call and Chat within a few lines of code.

Welcome to iStream! This SwiftUI Framework allows you to add Video Call and Chat to your project within a few lines of code. To use this Framework, yo

📹 Framework to Play a Video in the Background of any UIView
📹 Framework to Play a Video in the Background of any UIView

SwiftVideoBackground is an easy to use Swift framework that provides the ability to play a video on any UIView. This provides a beautiful UI for login

Yattee: video player for Invidious and Piped built for iOS 15, tvOS 15 and macOS Monterey
Yattee: video player for Invidious and Piped built for iOS 15, tvOS 15 and macOS Monterey

Video player with support for Invidious and Piped instances built for iOS 15, tvOS 15 and macOS Monterey.

Yattee: video player for Invidious and Piped built for iOS, tvOS and macOS
Yattee: video player for Invidious and Piped built for iOS, tvOS and macOS

Video player for Invidious and Piped instances built for iOS, tvOS and macOS. Features Native user interface built with SwiftUI Multiple instances and

▶️ video player in Swift, simple way to play and stream media on iOS/tvOS

Player Player is a simple iOS video player library written in Swift. Looking for an obj-c video player? Check out PBJVideoPlayer (obj-c). Looking for

Owner
I am an ios development engineer, dedicated to developing a framework that is easy to put into production. Encourage everyone on GitHub.
null
Nextcloud Talk is a fully on-premises audio/video and chat communication service

Nextcloud Talk iOS app Video & audio calls and chat through Nextcloud on iOS Nextcloud Talk is a fully on-premises audio/video and chat communication

Nextcloud 112 Dec 26, 2022
High-quality Interactive Audio/Video Unity SDK

简体中文 | English TRTC Unity SDK Overview Leveraging Tencent's many years of experience in network and audio/video technologies, Tencent Real-Time Commun

LiteAVSDK 8 Dec 23, 2022
Video mp4 record save display - How to Take , Save and Display a .mp4 Video

Technicalisto How to Take , Save and Display a .mp4 Video Add your design with v

Aya Baghdadi 2 Aug 7, 2022
A fully functional short video app project.Record a six secends video while playing prank sounds.

prankPro A fully functional short video app project How to Install 1. use coconapod to init your xcode environment. 2. change the app-keys in `applica

huijimuhe 258 Jun 19, 2022
JDVideoKit - You can easily transfer your video into Three common video type.

JDVideoKit Introduction You can easily transfer your video into Three common video type. You can use set up camera easily. Installation pod 'JDVideoK

郭介騵 24 Sep 9, 2021
A Swift library to upload video files to api.video platform.

api.video IOS video uploader api.video is the video infrastructure for product builders. Lightning fast video APIs for integrating, scaling, and manag

api.video 7 Dec 9, 2022
api.video is the video infrastructure for product builders

api.video is the video infrastructure for product builders. Lightning fast video APIs for integrating, scaling, and managing on-demand & low latency live streaming features in your app.

api.video 4 Jun 27, 2022
A video decoder built on ffmpeg which allows libpag to use ffmpeg as its software decoder for h264 decoding.

ffavc ffavc is a video decoder built on ffmpeg which allows libpag to use ffmpeg as its software decoder for h264 decoding. Build ffmpeg First, make s

Portable Animated Graphics 8 Nov 24, 2022
High-performance and flexible video editing and effects framework, based on AVFoundation and Metal.

High-performance and flexible video editing and effects framework, based on AVFoundation and Metal.

BearRuan 650 Dec 30, 2022
A simple iOS app similar to iTunes where you can view details of your favorite movies, songs and audio books.

Popcorn Adventure This is an iOS app developed by Arthur Tristan M. Ramos who has taken the Appetiser iOS Coding Challenge. Design Pattern The design

Arthur Tristan M. Ramos 0 Dec 11, 2021