오디오를 두 부분으로 나누고 인코딩하고 ffmpeg를 사용하여 다시 병합하는 방법은 무엇입니까?


1

긴 질문을 실례합니다. 내 요점을 알려주는 더 쉽고 짧은 방법을 모르겠습니다.

ffmpeg를 사용하여 편집 (페이드 아웃 등)하고 오디오 파일을 분할하고 나중에 다시 병합하고 싶습니다. (필터를 사용하기 때문에 -c copy를 사용할 수 없습니다)

mp3를 사용하면 다시 병합 할 때 스플릿 위치가 분명히 깨집니다. 그래서 원시 선형 형식을 사용해 보았지만 분할 지점에서도 아티팩트를 생성합니다.

내 목적으로 사용할 수있는 오디오 코덱이 있습니까, 아니면 내 문제를 해결할 수있는 다른 아이디어가 있습니까? 미리 감사드립니다!

시작점으로 여기 내 명령이 있습니다.

ffmpeg -t 20 -i song.mp3 -filter_complex afade=t=in:ss=0:d=2 -vn -f u16le part1.raw
ffmpeg -ss 20 -i song.mp3 -filter_complex afade=t=out:ss=60:d=2 -vn -f u16le part2.raw

^ 이것은 분할하지 않고 수행 할 수 있다는 것을 알고 있지만 나중에 라이브 환경에서 출력 등을 파이프하므로 분할 / 병합해야합니다 ...

ffmpeg -f u16le -i "concat:part1.raw|part2.raw" -vn output.mp3


MP3에는 타임 스탬프가 없으므로 디 먹서 검색이 정확하지 않습니다. 디코더 검색으로 전환하십시오 (예 : 입력 이름 뒤에 ss / t 배치).
Gyan

감사합니다! 그러나 미리 mp3를 raw로 변환하려고 시도했지만 그 어느 것도 효과가 없었기 때문에 너무 낙관적이지 않습니다.
Henry

양식의 명령을 사용하여 문제를 재현 할 수 있었고 디코더 찾기로 전환하여 문제를 피할 수 있습니다.
Gyan

고마워 친구! 지금 시도해 볼 것입니다. 또 다른 것은 왜 첫 코멘트를 답으로 올리지 않았습니까? 나는이 플랫폼을 처음 사용합니다.
Henry

이것은 나를 위해 작동하지 않습니다. 마지막에 연속 스트림을 사용하고 있습니다. 내가 파이프에 쓰는 것 : Song1, Crossfade, 처음 10 초 Song2-> Song2 -ss 10, Crossfade, 처음 10 초 Song3 ...-하나의 인스턴스로 이동하여 아이스 캐스트 스트림 + mp3 파일을 인코딩합니다. mp3를 사용할 때 해당 인스턴스에서 오류가 발생합니다. "입력을 처리 할 때 헤더가 누락되었거나 잘못된 데이터가 발견되었습니다 / 오디오 패킷이 유효하지 않습니다"-원시를 사용할 때는 오류가 발생하지 않지만 각 컷에 아티팩트가 있습니다. 어떻게 이것을 달성 할 수 있습니까? 인스턴스가 스트림의 마지막 부분과 병합되도록 할 수 있습니까?
Henry
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.