MP3를 처음 30 초로 자르기


103

원래 질문

미리보기로 사용할 기존 MP3 파일에서 새 (완전히 유효한) MP3 파일을 생성 할 수 있기를 원합니다. 새 파일에는 트랙 의 처음 n 초만 포함되어야합니다 .

이제 파일을 전달할 때 n 초 (비트 전송률 및 헤더 크기에서 계산)에 "스트림을 잘라낼"수 있다는 것을 알고 있지만 이것은 VBR 트랙에서 약간 더럽고 실제 PITA입니다. 적절한 MP3 파일을 생성하고 싶습니다.

누구 아이디어?

답변

모두 mp3splitffmpeg모두 좋은 솔루션입니다. ffmpeg는 일반적으로 리눅스 서버에 설치되며 Windows 에서도 쉽게 사용할 수 있기 때문에 선택했습니다 . 다음은 ffmpeg로 미리보기를 생성하기위한 몇 가지 좋은 명령 줄 매개 변수입니다.

  • -t <seconds> 지정된 시간 (초) 후에 자르기
  • -y 강제 파일 덮어 쓰기
  • -ab <bitrate>비트 레이트 설정 (예 : -ab 96k)
  • -ar <rate Hz>샘플링 속도 설정 (예 : 22.05kHz에 대해 -ar 22050)
  • -map_meta_data <outfile>:<infile> infile에서 outfile로 트랙 메타 데이터 복사

-ab 및 -ar를 설정하는 대신 Tim Farley가 제안한대로 다음을 사용하여 원래 트랙 설정을 복사 할 수 있습니다.

  • -acodec copy

나는 이것을 특정 목적으로 사용하지 않았지만 ffmpeg 가 그것을 할 수 있다고 확신합니다.
grapefrukt

생각 만하면됩니다. 원래 노래의 시작 부분을 건너 뛰고 싶을 수 있습니다. 노래 의 세 번째 부분부터 30 초짜리 곡을 사용할 수 있습니다 . 일부 노래에서 처음 30 초는 "장면 설정"부분이기 때문에 많이 알려주지 않습니다. 예를 들어 Pink FloydShine On You Crazy Diamond .
Tomas Sedovic

참고로 CentOS에서 ffmpeg, mptsplit 및 mp3cutter를 사용하여 정말 안 좋은 시간을 보냈으며 모두 "Header Missing"을보고했습니다. 그래서 파일 크기를 줄이기 위해 MP3 클래스와 몇 가지 수학을해야했습니다.
Gardner

ffmpeg가 그렇게 할 수 있다는 것을 몰랐습니다. 감사합니다.
Sridhar Sarnobat

답변:


142

또한 ffmpeg를 권장하지만 John Boker가 제안한 명령 줄에는 의도하지 않은 부작용이 있습니다. 파일을 기본 비트 전송률로 다시 인코딩합니다 (적어도 여기에있는 버전에서는 64kb / s). 이로 인해 고객에게 사운드 파일의 품질에 대한 잘못된 인상을 줄 수 있으며 시간이 더 오래 걸립니다.

트랜스 코딩없이 30 초로 분할되는 명령 줄은 다음과 같습니다.

ffmpeg -t 30 -i inputfile.mp3 -acodec copy outputfile.mp3

-acodec 스위치는 ffmpeg에게 트랜스 코딩하지 않는 특수 "복사"코덱을 사용하도록 지시합니다. 번개처럼 빠릅니다.

참고 : 명령은 Oben Sonne의 의견에 따라 업데이트되었습니다.


21
최근 ffmpeg버전 (최소 0.10.6 이후)은 위치에 따라 옵션을 다르게 해석합니다. 입력 관련 옵션은 앞에 나타나야 -i ...하고 출력 관련 옵션은 뒤에 나타나야합니다 -i .... 이것은 이제 정답 이 ffmpeg -t 30 -i inputfile.mp3 -acodec copy outputfile.mp3될 것임을 의미 합니다.
Oben Sonne 2012

15 초 입력 파일에서 30 초 오디오를 추출 할 수 있습니까? 파일을 강판 한 다음 30 초를 추출하면 30 초를 추출하지만 파일이 15 초이면 반복하고 추출이 완료된 30 초를 의미합니다.
Girish Patidar

6
시작 시간 (오프셋)을 설정하려면을 사용할 수 있습니다 -ss hh:mm:ss[.xxx]. 예 : 00h 00m 15s 500ms 에서 시작 ffmpeg -t 30 -ss 00:00:15.500 -i inputfile.mp3 -acodec copy outputfile.mp3하여 30 초로 슬라이스됩니다 .
patryk.beza

1
내가 그것을 변경 한 경우 명령 위에 어떤 이유로 나를 위해 일하지만하지 않았다 : ffmpeg -i inputfile.mp3 -t 30 -acodec copy outputfile.mp3다음은 완벽하게 작동하고
Krishnendu

나를 위해 -t 및 -s 옵션은 2 개의 명령에서 별도로 사용해야합니다. 하지만 작동합니다, 감사합니다!
Yan King Yin

57

처음 30 초를 제거하고 나머지는 유지하려면 다음을 사용하십시오.

ffmpeg -ss 30 -i inputfile.mp3 -acodec copy outputfile.mp3


12

이 명령도 완벽하게 작동합니다. 음악 파일을 20 초에서 40 초로 자릅니다.

-y : 출력 파일을 강제로 덮어 씁니다.

ffmpeg -i test.mp3 -ss 00:00:20 -to 00:00:40 -c copy -y temp.mp3

1
완전한! 공유해 주셔서 감사합니다.
HerrimanCoder

11

mp3cut을 사용할 수 있습니다.

cutmp3 -i foo.mp3 -O 30s.mp3 -a 0:00.0 -b 0:30.0

우분투 저장소에 있으므로 sudo apt-get install cutmp3.


6

Mp3Splt 를 시도해 볼 수 있습니다 .

이전에 mp3splt.exe win32 프로세스를 단순히 래핑 한 C # 서비스에서 사용했습니다. Linux / PHP 시나리오에서 비슷한 작업을 수행 할 수 있다고 가정합니다.


2
MP3 자르기에 성공한 MP3Split 사용
Freshblood 2014

0

같은 작업을하는 동안 오류가 발생했습니다.

Invalid audio stream. Exactly one MP3 audio stream is required.
Could not write header for output file #0 (incorrect codec parameters     ?): Invalid argumentStream mapping:

나를 위해 수정은 다음과 같습니다.

ffmpeg -ss 00:02:43.00 -t 00:00:10 -i input.mp3 -codec:a libmp3lame out.mp3

0

medipack.NET Framework 에 대한 래퍼로서 매우 간단한 명령 줄 앱 ffmpeg입니다.

다음 명령을 사용하여 비디오를 트리밍 할 수 있습니다.

medipack trim input.mp3 -s 00:00 -e 00:30 -o output.mp3
medipack trim input.mp3 -s 00:00 -t 00:30 -o output.mp3

trim 하위 명령의 옵션을 다음과 같이 볼 수 있습니다.

srb@srb-pc:$ medipack trim -h
usage: medipack trim [-h] [-s START] [-e END | -t TIME] [-o OUTPUT] [inp]

positional arguments:
  inp                   input video file ex: input.mp4

optional arguments:
  -h, --help            show this help message and exit
  -s START, --start START
                        start time for cuting in format hh:mm:ss or mm:ss
  -e END, --end END     end time for cuting in format hh:mm:ss or mm:ss
  -t TIME, --time TIME  clip duration in format hh:mm:ss or mm:ss
  -o OUTPUT, --output OUTPUT

다음을 사용하여 다른 옵션을 탐색 할 수도 있습니다. medipack -h

srb@srb-pc:$ medipack --help
usage: medipack.py [-h] [-v] {trim,crop,resize,extract} ...

positional arguments:
  {trim,crop,resize,extract}

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         Display version number

https://github.com/srbcheema1/medipack을 방문 하고 README에서 예제를 확인할 수 있습니다 .


1
이 래퍼의 장점은 무엇입니까? 더 간단 해 보이지 않기 때문에ffmpeg -i input -ss <start time> -to <end time> output
llogan

나는 또한 다음 4 분 36 초 비디오를 트리밍한다고 가정하고 그 시간을 수동으로 추가하는 것에 대해 걱정할 필요가 없으며 비디오를 자르는 동안 유사한 용이성을 제공했다고 가정 -t하는 대신 사용할 수 있는 옵션을 -e추가했습니다. 예제를 참조하십시오. README에서 CLI가 단순한 ffmpeg보다 더 쉬운 이유를 알 수 있습니다. 나는 그것이 강력하지는 않지만 일반인에게는 편리한 도구에 동의합니다.
srbcheema1

2
ffmpeg아마도 -to당신 이하는 일인 옵션 -t이 있습니다.
llogan

자르기 하위 옵션의 README에 언급 된 자르기 % age 옵션은 어떻습니까? 나는 큰 CLI 옵션 목록에 대해 걱정하고 싶지 않기 때문에 몇 달러를 지불 한 누군가가 요청에 따라 그 도구를 만들었습니다. ffmpeg에 모든 옵션이 있더라도 특정 작업을 쉽게 수행 할 수있는 도구를 원했습니다. 그러나 여전히 멍청이가 명령 줄 도움말 섹션에서 모두 찾기는 어려울 것입니다. 이 도구에는
멍청이

물론입니다.-vf "crop=iw*0.1:ih*0.1:0:0"
llogan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.