Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ffmpeg clip audio interval with starting and end time

Tags:

ffmpeg

audio

mp3

I am trying to clip an MP3 between two starting points, like starting at 10 seconds and ending at 16 seconds (time interval of 6 seconds).

I am using this command:

ffmpeg -ss 10 -i input.mp3 -t 6 output.mp3

The resulting output.mp3 contains the 6 seconds that I specified followed by 8 or 9 seconds of empty audio. Is there something wrong with my command?

Edit:

ffmpeg -ss 10 -t 6 -i input.mp3 output.mp3 says -t is not an input option, keeping it for the next output; consider fixing your command line. and gives me a file that's got 8 seconds of audio starting from 10s and then some 9 or 10 seconds of silence.

ffmpeg -ss 10 -to 16 -i input.mp3 output.mp3 produces a file that is twice the length of the original - basically the same audio file repeated again.\

Testing the output:

I used Quicktime and it has silent audio at the end. The description of the output file in finder says like 14 seconds. When I use VLC, it plays for the correct 6 seconds and stops, even though its duration in the file browser in VLC says 14. My MPlayer doesn't work properly. I also did the preview audio in Finder, and it plays the 6 seconds properly and then stops. But the round seeker bar of the MP3 didn't reach the end. And it also says 14 seconds instead of 6.

My goal is to stream this 6 second file through a REST API to the front end. I want the user to be able to download this file properly. Ideally it won't have inconsistent metadata (14 seconds instead of 6).

like image 369
gruuuvy Avatar asked Nov 30 '13 01:11

gruuuvy


People also ask

What is offset in ffmpeg?

The itsoffset option applies to all streams embedded within the input file. Therefore, adjusting timestamps only for a single stream requires to specify twice the same input file. adjusts timestamps of the input audio stream(s) only.


3 Answers

ffmpeg - Trim audio file without re-encoding

Use ffmpeg to trim an audio file without re-encoding it.

Trim starting from 10 seconds and end at 16 seconds (total time 6 seconds)

ffmpeg -i input.mp3 -ss 10 -t 6 -acodec copy output.mp3

Trim from 00:02:54.583 to the end of the file

ffmpeg -i input.mp3 -ss 00:02:54.583 -acodec copy output.mp3

Trim from 00:02:54.583 for 5 minutes (300 seconds)

ffmpeg -i input.mp3 -ss 00:02:54.583 -t 300 -acodec copy output.mp3
like image 35
Sun Avatar answered Oct 16 '22 07:10

Sun


For me both

ffmpeg -ss 10 -t 6 -i input.mp3 output.mp3

or

ffmpeg -ss 10 -i input.mp3 -t 6 output.mp3

work OK, just 6 seconds of audio. Here's the mplayer output (last line):

A:   5.8 (05.7) of 6.0 (06.0)  0.5%

Also

ffmpeg -ss 10 -to 16 -i input.mp3 output.mp3

work the same way. I use ffmpeg version 1.2.4. I guess your ffmpeg is somehow "broken" or the input file is somehow (report a bug in either case).

You may try the other answer with mp3cut from portforwardpodcast or

sox input.mp3 output.mp3 trim 10 6
like image 178
Doncho Gunchev Avatar answered Oct 16 '22 07:10

Doncho Gunchev


I've had great success with both CBR and VBR mp3 files using mp3cut.

mp3cut -o output.mp3 -t 00:10-00:16 input.mp3

http://manpages.ubuntu.com/manpages/lucid/man1/mp3cut.1.html

like image 2
benathon Avatar answered Oct 16 '22 06:10

benathon