MP3를 처음 30 초로 자르기
원래 질문
미리보기로 사용할 기존 MP3 파일에서 새 (완전히 유효한) MP3 파일을 생성 할 수 있기를 원합니다. 새 파일에는 트랙 의 처음 n 초만 포함되어야합니다 .
이제 파일을 전달할 때 n 초 (비트 전송률 및 헤더 크기에서 계산)에 "스트림을 잘라낼"수 있다는 것을 알고 있지만 이것은 VBR 트랙에서 약간 더럽고 실제 PITA입니다. 적절한 MP3 파일을 생성하고 싶습니다.
누구 아이디어?
답변
모두 mp3split
와 ffmpeg
모두 좋은 솔루션입니다. 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
'Programming' 카테고리의 다른 글
자바 스크립트의 구조체 (0) | 2020.08.24 |
---|---|
Docker-Compose가 코드 0으로 종료되었습니다. (0) | 2020.08.24 |
MKMapView 또는 UIWebView 개체에서 터치 이벤트를 가로채는 방법은 무엇입니까? (0) | 2020.08.24 |
[] 및 {} vs list () 및 dict (), 어느 것이 더 낫습니까? (0) | 2020.08.24 |
달력이 잘못된 달을 반환 함 (0) | 2020.08.24 |