Programming

MP3를 처음 30 초로 자르기

procodes 2020. 8. 24. 21:18
반응형

MP3를 처음 30 초로 자르기


원래 질문

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

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

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

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

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


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

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

시험:

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

mp3cut을 사용할 수 있습니다.

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

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


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

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

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

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

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


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

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

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에서 예제를 확인할 수 있습니다 .

참고 URL : https://stackoverflow.com/questions/43890/crop-mp3-to-first-30-seconds

반응형