오디오를 역다중화하고 그것이 어떤 유형인지 아는 방법은 무엇입니까?
오디오를 비디오에 믹싱할 때 ffmpeg, mencoder 등은 오디오 인코딩이 무엇인지 알아야 합니다. 인코더는 일반적으로 파일 이름 확장자를 "매개변수"로 사용합니다. 예를 들어. .aac
그런데 믹싱하려는 오디오가 다른 비디오에서 분할될 때 스크립트의 인코딩 유형을 어떻게 결정합니까?
이 마법 같은 정보를 찾을 수 있는 가장 가까운 방법은 코덱의 4CC 문자열(4자 코드)을 얻는 것이었지만, 그것은 꼭 들어맞지 않습니다. *(업데이트: 이는 4CC 코드가 아닌 것으로 보이며 실제로는 mplayer의 사양입니다."코덱 제품군"..다음을 통해 나열됨: mplayer -afm help
/usr/share/mplayer/midentify.sh $audio |sed -nr 's/^ID_AUDIO_CODEC=(.*)/\1/p')"
내 출력 비디오는 MP4 컨테이너를 사용하므로 입력 오디오의 형식을 알아야 하고 필요한 경우 이를 트랜스코딩해야 하며... 어떤 경우에도 오디오 인코더가 필요합니다.유형, 위 명령으로 출력된 코드가 아닙니다.
역다중화에도 사전 인식이나 코덱 유형이 필요한 것 같습니다!
일반 덤프를 사용해 보았지만 mplayer -dumpaudio $audio
적절한 접미사를 수동으로 추가해도 출력이 재생되지 않습니다.
답변1
내가 아는 최고의 명령줄 미디어 유형 식별 도구는 다음과 같습니다.미디어 정보. 프로젝트 페이지에는 Windows GUI 프로그램으로 표시되지만 세 가지 주요 플랫폼 모두에 대한 명령줄 버전이 있습니다. 명령줄 출력은 읽을 수 있지만 Perl과 같은 언어에서 구문 분석하기가 매우 쉽습니다.
내가 아는 두 번째로 좋은 도구는 다음과 같습니다 ffprobe
.ffmpeg팩. 해당 출력은 MediaInfo의 출력보다 읽기 어렵지만 구문 분석하기는 더 쉽습니다. (예를 들어 둘 다 멀티플렉서의 각 스트림에 대해 하나씩 여러 "코덱" 줄을 인쇄하는 것과 같은 작업을 수행하기 때문에 상황에 맞는 파서가 필요합니다.) MediaInfo는 또한 스트림에 대한 더 자세한 정보를 제공하는 것으로 보입니다.
ffprobe
이미 사용하고 계시다면 ffmpeg
설치 시 무료로 제공되므로 더 선호하실 수도 있습니다 ffmpeg
. 게다가 동일한 코드를 기반으로 하기 때문에 ffprobe
파일에 대한 유용한 정보를 알려준다면 ffmpeg
작업에 자신감을 가질 수 있습니다.