You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+11Lines changed: 11 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,16 @@
1
1
# Change Log
2
2
3
+
## Version 1.4.18 (2022-02-04)
4
+
5
+
This release introduces a lot of audio processing improvements and fixes:
6
+
7
+
- A new AudioRenderer, focused solely on audio processing
8
+
- Capability to change sampling rate with high performance and high quality, provided by integrating [Oboe resampler](https://github.com/google/oboe/tree/master/src/flowgraph/resampler).
9
+
- Capability to mix stereo audio to mono and vice versa.
10
+
- Support for audio filters.
11
+
- Support for writing raw audio into WAV file.
12
+
- Fix for dropped audio frames.
13
+
3
14
## Version 1.4.17 (2022-01-24)
4
15
5
16
- Allow non-negative reads from source buffer during transcoding [#133](https://github.com/linkedin/LiTr/pull/133)
Copy file name to clipboardExpand all lines: README.md
+13-10Lines changed: 13 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,15 +5,16 @@ LiTr (pronounced "lai-tr") is a lightweight video/audio transformation tool whic
5
5
6
6
In its current iteration LiTr supports:
7
7
- changing resolution and/or bitrate of a video track(s)
8
-
- changing bitrate of an audio track(s)
8
+
- changing sampling rate, channel count and/or bitrate of an audio track(s)
9
9
- overlaying bitmap watermark onto video track(s)
10
10
- applying different effects (brightness/contrast, saturation/hue, blur, etc.) to video pixels
11
11
- including/excluding tracks, which allows muxing/demuxing tracks
12
12
- transforming tracks individually (e.g. apply overlay to one video track, but not the other)
13
13
- positioning source video frame arbitrarily onto target video frame
14
14
- trimming video/audio
15
-
- ability to create "empty" video, or a video out of single image
16
-
- ability to create preview bitmap(s) (with filters applied) at specific timestamp(s) (filmstrip)
15
+
- creating "empty" video, or a video out of single image
16
+
- creating preview bitmap(s) (with filters applied) at specific timestamp(s) (filmstrip)
17
+
- writing raw audio into WAV container
17
18
18
19
By default, LiTr uses Android MediaCodec stack for hardware accelerated decoding/encoding and OpenGL for rendering. It also uses MediaExtractor and MediaMuxer to read/write media.
19
20
@@ -22,15 +23,15 @@ By default, LiTr uses Android MediaCodec stack for hardware accelerated decoding
@@ -62,6 +63,7 @@ Few notable things related to transformation:
62
63
- transformation is performed asynchronously, listener will be called with any transformation progress or state changes
63
64
- by default listener callbacks happen on a UI thread, it is safe to update UI in listener implementation. It is also possible to have them on a non-UI transformation thread, for example, if any "heavy" works needs to be done in listener implementation.
64
65
- if you want to modify video frames, pass in a list of `GlFilter`s in `TransformationOptions`, which will be applied in order
66
+
- if you want to modify audio frames, pass in a list of `BufferFilter`s in `TransformationOptions`, which will be applied in order
65
67
- client can call `transform` multiple times, to queue transformation requests
66
68
- video will be written into MP4 container, we recommend using H.264 ("video/avc" MIME type) for target encoding
67
69
- progress update granularity is 100 by default, to match percentage, and can be set in `TransformationOptions`
@@ -125,20 +127,20 @@ You can use custom filters to modify video frames. Write your own in OpenGL as a
125
127
LiTr now has 40 new GPU accelerated video filters ported from [Mp4Composer-android](https://github.com/MasayukiSuda/Mp4Composer-android) and [android-gpuimage](https://github.com/cats-oss/android-gpuimage) projects. You can also create your own filter simply by configuring VideoFrameRenderFilter with your custom shader, with no extra coding!
You can pass in a list of filters when transforming a video. Keep in mind that filters will be applied in the order they are in the list, so ordering matters.
143
+
You can pass in a list of filters when transforming a video or audio track. Keep in mind that filters will be applied in the order they are in the list, so ordering matters.
142
144
143
145
## Using in Tests
144
146
@@ -190,9 +192,10 @@ This project is licensed under the BSD 2-Clause License - see the [LICENSE](LICE
190
192
191
193
* A huge thank you to [ypresto](https://github.com/ypresto/) for his pioneering work on [android-transcoder](https://github.com/ypresto/android-transcoder) project, which was an inspiration and heavy influence on LiTr
192
194
* A special thank you to [MasayukiSuda](https://github.com/MasayukiSuda) for his work on [Mp4Composer-android](https://github.com/MasayukiSuda/Mp4Composer-android) project, whose filters now power LiTr, and for his work on [ExoPlayerFilter](https://github.com/MasayukiSuda/ExoPlayerFilter) project which was a foundation for filter preview functionality in LiTr.
193
-
* A special thank you to [android-gpuimage](https://github.com/cats-oss/android-gpuimage) project for amazing filter collection, which is now being migrated into LiTr
195
+
* A special thank you to [android-gpuimage](https://github.com/cats-oss/android-gpuimage) project for amazing filter collection, which have been ported into LiTr
194
196
* A thank you to Google's AOSP CTS team for writing Surface to Surface rendering implementation in OpenGL, which became a foundation for GlRenderer in LiTr
195
-
* A shout out to my awesome colleagues Amita Sahasrabudhe, Long Peng and Keerthi Korrapati for contributions and code reviews
197
+
* A thank you to Google [Oboe](https://github.com/google/oboe) project for high quality audio resampling implementation, which became a foundation of audio processing in LiTr
198
+
* A shout out to my awesome colleagues Amita Sahasrabudhe, Long Peng, Keerthi Korrapati and Vasiliy Kulakov for contributions and code reviews
196
199
* A shout out to my colleague Vidhya Pandurangan for prototyping video trimming, which now became a feature
197
200
* A shout out to our designer Mauroof Ahmed for giving LiTr a visual identity
198
201
* A shout out to [PurpleBooth](https://gist.github.com/PurpleBooth/) for very useful [README.md template](https://gist.github.com/PurpleBooth/109311bb0361f32d87a2)
0 commit comments