From c99e97b6871105a886026027b18e8e3906aaaee4 Mon Sep 17 00:00:00 2001 From: Kyle McDonald Date: Sun, 4 Aug 2019 15:18:55 -0700 Subject: [PATCH] added mono to stereo example --- examples/README.md | 30 +++++++++++++++++++++++++++++ examples/graphs/mono-to-stereo.png | Bin 0 -> 17191 bytes 2 files changed, 30 insertions(+) create mode 100644 examples/graphs/mono-to-stereo.png diff --git a/examples/README.md b/examples/README.md index 4ec816e..d9981f5 100644 --- a/examples/README.md +++ b/examples/README.md @@ -115,6 +115,36 @@ out = ffmpeg.output(v3, a3, 'out.mp4') out.run() ``` +## Mono to stereo with offsets and video + +mono-to-stereo graph + +```python +audio_left = ( + ffmpeg + .input('audio-left.wav') + .filter('atrim', start=5) + .filter('asetpts', 'PTS-STARTPTS') +) + +audio_right = ( + ffmpeg + .input('audio-right.wav') + .filter('atrim', start=10) + .filter('asetpts', 'PTS-STARTPTS') +) + +input_video = ffmpeg.input('input-video.mp4') + +( + ffmpeg + .filter((audio_left, audio_right), 'join', inputs=2, channel_layout='stereo') + .output(input_video.video, 'output-video.mp4', shortest=None, vcodec='copy') + .overwrite_output() + .run() +) +``` + ## [Jupyter Frame Viewer](https://github.com/kkroening/ffmpeg-python/blob/master/examples/ffmpeg-numpy.ipynb) jupyter screenshot diff --git a/examples/graphs/mono-to-stereo.png b/examples/graphs/mono-to-stereo.png new file mode 100644 index 0000000000000000000000000000000000000000..92ce0e5b47a26c88dfbc88baf84bc764b4c3ddd1 GIT binary patch literal 17191 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 Aq5uE@ literal 0 HcmV?d00001