mpg123은 MP3로 널리 알려진 MPEG Audio Layer 1, 2 및 3 파일을 디코딩하고 재생할 수있는 오픈 소스 명령 줄 음악 재생 소프트웨어로 Linux 콘솔에서 완전히 실행되도록 설계되었습니다.
기능 요약
주요 기능으로는 MPEG 오디오 레이어 1, 2 및 3 용 오디오 디코딩 라이브러리, MPEG 1.0, 2.0 및 2.5 형식의 실시간 오디오 플레이어, 부동 소수점 및 정수 수학 지원, 고품질 및 빠른 오디오 재생, 다양한 Linux 및 UNIX와 유사한 운영 체제를 지원할 수 있습니다.
명령 줄 옵션
애플리케이션의 기본 제공 명령 행 옵션 중에는 출력을 WAV 파일에 쓰거나 첫 번째 n 개의 프레임을 건너 뛰고, 1 : 2 (22 kHz)로 다운 샘플링하고, n 번째 프레임 만 재생하고, mix 두 채널 (모노), 제어 키 사용, 임의 재생 (와일드 카드 사용), URL 읽기, 채널 0 디코딩 (왼쪽), HTTP 인증 사용, 출력 버퍼 설정, 샘플 레이트 설정 또는 강제 실행 및 범위 위반 확인. p>
두건 및 가용성 확인
응용 프로그램은 C 프로그래밍 언어로 작성되었지만 SSE, 3DNow 또는 ARM과 같은 몇 가지 특수 최적화를 사용하며 GNU / Linux, BSD, Solaris, AIX, OS / 2, HP-UX, SGI Irix, Mac OS X, Microsoft Windows 운영 체제.
소스 아카이브로 다운로드 할 수 있습니다. 즉, 사용자가 Linux / UNIX 명령 줄을 통해 응용 프로그램을 구성, 컴파일 및 설치해야합니다. 그러나 많은 Linux OS의 기본 소프트웨어 저장소에서 쉽게 설치할 수 있습니다.
결론
요약하면, 우리는 현대 그래픽 사용자 인터페이스로 가득 찬 세계에서이 명령 행 오디오 플레이어가 누구인지는 알지 못하지만, mpg123은 매우 우수한 음질을 제공하며,
이 릴리스의 새로운 내용 :
libout123 : OUT123_ARG_ERROR (버그 261)에서 시작하는 오류 메시지를 수정합니다.
mpg123 : stdin에서 스트림으로 작업 할 수있는 고정 간격 처리를 수정했습니다. (curl | mpg123 - 사이 간격 = n -)
libmpg123 : part2_3_length == 0 (maxband = 1로 설정, 다음 1.26.0에서 가져옴)으로 손상된 (퍼지) 파일에서 다른 잘못된 읽기 및 segfault를 수정합니다.
버전 1.25.3의 새로운 기능 :
artsc-config가없는 경우 무음 테스트.
LDFLAGS에서 -static-libgcc가 libtool을 통해 32 비트 Windows 빌드를 수정하는지 확인하십시오 (그렇지 않은 경우 libgcc DLL에 의존).
libout123 / modules makefile fragment에서 바보 같은 $ (RM) 대신 plain rm -f를 사용하여 비 GNU make로 빌드를 수정하십시오.
coreaudio 백엔드를 포함하여 iOS에서 빌드 작업을하십시오.
libmpg123 :
마지막으로 어셈블리 최적화를 통해 x86에 대한 위치 독립적 코드를 제공하십시오. 박 원규 (Won Kyu Park)와 타이 헤이 마마 (Taihei Momma) 덕분에 텍스타일이 사라졌습니다.
원래 MMX 최적화에서 내린 파일에서 일부 라이센스 언어를 명확히하십시오.
MPG123_BUFFERFILL에 대한 반환 값 오버플로 검사를 수정했습니다.
주 재생 루프에서 MPG123_NEW_FORMAT을 훔치지 않는 일반 컨트롤에 대해 FORMAT 명령을 활성화하려면 mpg123_getformat2 ()가 도입되었습니다. LOADPAUSED-FORMAT-PAUSE (재생) 시퀀스가 이제 작동해야합니다.
* BSD에서 기본적으로 aarch64 최적화를 활성화합니다. 어쨌든 --with-optimization을 사용하여 언제나 바보 같은 OS 화이트리스트를 무시할 수 있습니다.
이제 i486 디코더의 사용은 구성 출력에서 더 두드러지게 권장되지 않습니다.
out123 : verbose 모드와 톤 생성으로 바보 같은 충돌을 수정합니다 (포인터가 널이 아닌 경우 null을 표시하지 않음).
libout123 : 동적 및 레거시 (내장) 모듈에 대해보다 일관된 오류 메시지가 표시됩니다. 즉, 정적 libout123에 대해 기본 제공 모듈과 다른 모듈을 선택하는 방법에 대한 힌트를 얻을 수 있습니다.
버전 1.25.0의 새로운 기능 :
artsc-config가없는 경우 무음 테스트.
LDFLAGS에서 -static-libgcc가 libtool을 통해 32 비트 Windows 빌드를 수정하는지 확인하십시오 (그렇지 않은 경우 libgcc DLL에 의존).
libout123 / modules makefile fragment에서 바보 같은 $ (RM) 대신 plain rm -f를 사용하여 비 GNU make로 빌드를 수정하십시오.
coreaudio 백엔드를 포함하여 iOS에서 빌드 작업을하십시오.
libmpg123 :
마지막으로 어셈블리 최적화를 통해 x86에 대한 위치 독립적 코드를 제공하십시오. 박 원규 (Won Kyu Park)와 타이 헤이 마마 (Taihei Momma) 덕분에 텍스타일이 사라졌습니다.
원래 MMX 최적화에서 내린 파일에서 일부 라이센스 언어를 명확히하십시오.
MPG123_BUFFERFILL에 대한 반환 값 오버플로 검사를 수정했습니다.
주 재생 루프에서 MPG123_NEW_FORMAT을 훔치지 않는 일반 컨트롤에 대해 FORMAT 명령을 활성화하려면 mpg123_getformat2 ()가 도입되었습니다. LOADPAUSED-FORMAT-PAUSE (재생) 시퀀스가 이제 작동해야합니다.
* BSD에서 기본적으로 aarch64 최적화를 활성화합니다. 어쨌든 --with-optimization을 사용하여 언제나 바보 같은 OS 화이트리스트를 무시할 수 있습니다.
이제 i486 디코더의 사용은 구성 출력에서 더 두드러지게 권장되지 않습니다.
out123 : verbose 모드와 톤 생성으로 바보 같은 충돌을 수정합니다 (포인터가 널이 아닌 경우 null을 표시하지 않음).
libout123 : 동적 및 레거시 (내장) 모듈에 대해보다 일관된 오류 메시지가 표시됩니다. 즉, 정적 libout123에 대해 기본 제공 모듈과 다른 모듈을 선택하는 방법에 대한 힌트를 얻을 수 있습니다.
원격 제어 STOP 명령에서 out123_stop () 대신 out123_pause ()를 호출하여 1.23.x에서 회귀를 수정할 수 없음을 수정하여 버전 1.23.6의 새로운 기능을 제공합니다. 새로운 트랙이 다른 오디오 포맷을 가지고 있지 않으면 다른 LOAD로 재생을 다시 시작하십시오 (버그 234)
버전 1.23.5의 새로운 기능 :
libout123 :
win32에서 portaudio 및 SDL 빌드를 수정합니다 (너무 많은 괄호, Sandro Cumerlato에게 감사의 말을 전합니다)
out123_errcode ()는 문서화 된대로 OUT123_BAD_HANDLE을 반환합니다 (오류 열거 형에 값을 추가하는 것은 문서화되었지만 누락되었습니다). 다시 Sandro 덕분입니다.
windows-builds.sh (복사 단계에서 셸 인용)를 수정하고 MSVC에서 직접 사용할 수 있도록 배송 된 헤더에 비트를 추가하십시오 (ssize_t, 버그 232 정의)
Makefile에서 LIBS를 덮어 쓰지 않습니다 (1.23의 시스템 회귀를 작성하십시오, Peter Korsgaard에게 감사드립니다)
SIGPIPE에 대한 응답으로 메시지를 출력하지 않습니다. stderr 자체가 파이프 연결된 범인 인 경우 중단을 유발할 수 있습니다 (1.22의 회귀, 버그 233)
버전 1.23.3의 새로운 기능은 다음과 같습니다.
ID3v2 데이터에서 UTF-16을 사용한 허위 대리 탐지를 피하면서 버그 216에 대한 수정을 포함하여 스톱 갭 릴리스입니다.
트렁크에는 libout123과 일반 빌드 시스템 픽스 업 (비 재귀 적 make)이 포함될 다음 기능 버전으로 릴리스를 기다리는 흥미로운 변경 사항이 있습니다.
버전 1.22.3의 새로운 기능 :
이것은 ID3v2 데이터에서 UTF-16으로 가짜 대리 검출을 피하면서 버그 216에 대한 수정을 포함하여 스톱 갭 릴리스입니다.
트렁크에는 libout123과 일반 빌드 시스템 픽스 업 (비 재귀 적 make)이 포함될 다음 기능 버전으로 릴리스를 기다리는 흥미로운 변경 사항이 있습니다.
버전 1.22.1의 새로운 기능 :
재미있는 (조작 된) MIME 유형으로 이미지를 작성할 때 mpg123-id3dump를 수정합니다. 폴백 파일 확장자의 길이 계산에서 어리석은 실수는 포인터 크기가 64 비트보다 작 으면 파일 이름에 메모리의 정크가 추가되는 원인이되었습니다. 64 비트 포인터 (또는 그 이상)의 경우 우연히 맞았습니다.
out123 소스를 정리하여 페티 닉 빌드를 수정하십시오. 또한 이제는 인코딩 목록을 --longhelp에 표시하는 대신 가능할뿐만 아니라 다시 인코딩하여 메모리의 정크 메일을 작성합니다.
더 이상 libltdl에 대해 libmpg123을 연결하지 않습니다 (버그 215).
MSVC ++ 포트를 조금만 업데이트하여 다시 작동되게하십시오.
버전 1.21.0의 새로운 기능 :
LOADLIST 원격 명령에 대한 바로 가기로 LL을 사용합니다. L은 이미 사용되었습니다 (버그 210).
네임 스페이스 오염이 적습니다 (EXPORT 대신 헤더의 MPG123_EXPORT, 버그 212).
버전 1.20.1의 새로운 기능 :
재 파싱을 피하기 위해 버퍼에서 데이터를 일찍 폐기하여 정크를 건너 뛸 때 피드 리더의 효율성이 향상되었습니다. 이전 동작은 특정 입력과 심하게 상호 작용했습니다 (버그 465744 참고).
버전 1.20.0의 새로운 기능 :
AArch64 (ARM 64 비트 환경) 용 NEON 최적화 디코더가 추가되었습니다.
--with-cpu = neon64 (NEON 전용) 또는 --with-cpu = aarch64 (arm_fpu와 같이 neon과 generic_fpu 사이의 런타임 전환) 구성
aarch64-linux-gnu 툴체인 (우분투, 데비안)과 호환되며 Xcode 5
mpg123의 오디오 출력 부분에만 새 바이너리 out123을 추가했습니다. 이것은 상기 코드를 간단한 오디오 출력 라이브러리로 분리하는 전조입니다. 또한 출력으로 보내기 전에 파이프의 일부 처리를 막을 수 있습니다.
모듈을 나열 할 때 알 수없는 모듈 디렉토리에 대한 opendir (NULL)을 방지하십시오.
일부는 Windows에서 mpg123-id3dump를 수정하는 사람들 사이에서 수정 사항을 작성합니다.
버전 1.18.1의 새로운 기능 :
mpg123 -R로 버퍼를 두 번 닫지 마십시오 (control_generic ()에서 오래된 코드를 삭제하십시오), 버그 207을 수정하십시오.
프로그램 이름을 추출하는 데 첫 번째 명령 줄 인수를 사용하지 말고 대신 복사본을 사용하여 버그 205를 수정하십시오.
재생 목록 및 건너 뛰려는 사용자가 트랙을 열지 못하는 시간에 조기 종료를 방지합니다 (버그 206).
HTTP 소켓 엉망의 수정, 불필요한 FILE 오브젝트의 회피 (버그 204, Rajeev V. Pillai의 패치).
느린 HTTP 스트림에서 재생 목록 동작을 수정합니다. 첫 번째 트랙의 첫 번째 트랙에서 뒤로 이동 ( 'd'키)하면 Rajeev가 다시 버그 206 버그의 하위 버그로 바뀝니다.
Fix Frankenstein이 ID3v1 태그를 비틀 거리지 않도록 확인하십시오. 내 사과. 보너스로 파서에서 관련 코드의 위치가 훨씬 더 논리적입니다.
버전 1.17.0의 새로운 기능 :
mpg123-id3dump --no-scan; 속도 향상을 위해
지원되지 않는 mpg123 --help에서 -C 매개 변수 숨기기
tinyalsa 출력 추가 (Jarno Lehtinen 제공)
시스템 미세 조정하기
Cygwin 빌드 수정에 대한주의
버전 1.16.0의 새로운 기능 :
새로운 허프만 디코딩 체계 (기본값으로 구성 가능)는 mpg123을 현대 CPU에서 가장 빠른 디코더로 만들기 위해 좋은 향상을 가져옵니다.
새로운 AVX 디코더
SSE 및 AVX 용 어셈블리 최적화 DCT36
어셈블리 DCT36을 사용하는 빈티지 3DNow (ext) CPU (AMD K6)에 대한 추가 구성
빈티지 SSE CPU (펜티엄 M)를위한 추가 설정, C DCT36 활용
제네릭 제어에 FORMAT 명령 추가
ID3v2 APIC 프레임에 대한 지원 추가
메타 데이터 추출을위한 공식 동반자로 mpg123-id3dump 추가 (APIC에서 파일로 앨범 아트 작성 포함)
mpg123-strip을 공식 스트림으로 추가하여 MPEG 스트림 (메타 데이터 포함)에서 흙을 제거합니다.
일반 제어에서 인쇄 직후에 ID3 데이터를 삭제하지 않음
모듈 로더는 상대 MPG123_MODDIR로 좀 더 유연합니다.
pulseaudio 출력으로 단편 재생을 수정합니다. 출력을 닫을 때 출력을 마비시킵니다.
SDL 출력 픽스 업, a) 끝 부분을 잘라 내지 않으며 b) 치명적인 언더런
Win32 출력에서 명백한 오류를 수정합니다 ... 이제 트랙의 끝 부분을 재생합니까? 이것을 시험 할 누군가가 필요합니다.
--title (sf.net 사용자 canavan의 패치 메시지가 표시됨)이있는 화면 및 iris-ansi 터미널에 대한 지원이 추가되었습니다.
sgi 오디오 출력의 수정 / 개선
libmpg123 : 적절한 시스템을위한 적절한 대용량 파일 별칭 (하나만의 off_t가있는 FreeBSD
이를 통해 무의미한 _FILE_OFFSET_BITS 정의를 주장하는 클라이언트 소프트웨어를 사용할 수 있습니다.
패키지없이 모듈을 사용하여 mpg123을 실행하는 고통을 덜어주는 래퍼 스크립트 src / mpg123-with-modules (MPG123_MODDIR 설정)
제거 된 ALSA 0.5 코드 (오랫동안 사용되지 않았고 마지막 GPL 전용 비트)
버전 1.14.2의 새로운 기능 :
1.14 시리즈에서는 디스크 외부 상황을보다 잘 처리하기 위해 WAV 작성 코드가 변경되어 파손되었습니다 WAV를 표준 출력 (단일 WAV 헤더가있는 원시 데이터)에 기록합니다. 이것은 현재 릴리스에서 다시 작동합니다.
버전 1.14.1의 새로운 기능은 다음과 같습니다.
이 코드는 파서 코드의 재조정으로 알 수없는 버그를 수정합니다. 피더 API를 사용하면 (손상된) 스트림의 형식 변경을 놓칠 수 있습니다. 할당 된 출력 버퍼가 너무 작아서 (프레임 당 576 샘플로 MPEG 레이어 3에서 프레임 당 1152 샘플로 전환됨) 더 위험합니다.
버전 1.14.0의 새로운 기능 :
libmpg123 API 버전 36 (NEWS.libmpg123 참조)
--ignore-streamlength를 추가하십시오.
또한 연결된 (프랑켄슈타인) 스트림을 처리합니다. 발표 된 프레임 수를 초과하면 갭없는 절단을 적용하지 않습니다.
가사 출력용 --lyrics를 추가하십시오 (ID3v2의 USLT에서).
--ctrlusr1 및 --ctrlusr2를 통해 구성 가능한 터미널 제어 코드에 SIGUSR1 및 SIGUSER2 처리 기능을 추가했습니다.
일부 저급 API가 추가되었습니다 (mpg123_framedata (), mpg123_framepos (), 버퍼링 및 리샘플링 제어).
mpg123_getstate ()에 입력 버퍼 채우기에 대한 정보를 추가했습니다.
ReplayGain : 83dB의 다른 기준 레벨에 대해 3.95 미만의 LAME을 감지합니다 (6dB의 프리 앰프 추가). 버전 3.95 자체 (3.95.1 아님) 발견 할 수 없습니다. 사용자가 설정 한 게인 값은 건드리지 않습니다.
프레임을 무시할 때 비트 저장통을 놓치지 말라. 그것이 전체 요점입니다 (주로 ;-).
구형 CPU (x86 이상)에서 일반 디코더를 더 빠르게 만드는 MPlayer의 새로운 / 이전 WRITE_SAMPLE 변형을 추가하십시오. x86-64는 아니지만 (기본 설정에서는 활성화되지 않았습니다).
파일 작성자의 디스크 부족 문제 처리 (비트 단위, http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=67259 참조)
MacOS 및 iOS에서 libmpg123을 빌드하기위한 Xcode 프로젝트 파일 추가
sndio 출력을위한 32 비트 출력 (Brad Smith의 패치).
원격 제어 인터페이스는 이제 LOADLIST 명령을 알고 있습니다.
이제 출력 후 메타 데이터 메모리를 해제합니다.
quadrispro에 의한 맨 페이지 수정을 포함한 문서 정리.
Windows에서 와일드 카드 확장을 다시 사용하도록 설정했습니다 (유니 코드 파일 이름 지원으로 인해 손상됨).
MMX tabinit 구문을 수정했습니다 (Marcel Muller에게 감사의 말을 전합니다).
SGI 오디오 출력을 수정했습니다 (모듈 변경 이후 깨짐).
일부 프린지 동작 (mpg123_getformat ())을 수정하여 다음 프레임을 불필요하게 읽음. 아마도 가짜 MPG123_NEED_MORE를 치는 것입니다.
재 동기화 제한은 이제 처음에 건너 뛴 스팸의 양을 늘리는 역할을합니다.
스트림 종료 및 읽기 오류가 더 잘 분리됩니다 (열린 스트림이없는 경우에도).
자유 형식 헤더 검색에 실패했다고 항상 불평하는 것은 아닙니다 (자세한 정보 수준 3 만 사용).
댓글을 찾을 수 없습니다