ogg vorbis 파일의 무손실 연결


12

두 개의 ogg vorbis 파일이 있는데 모두 단일 파일로 연결하려는 것과 동일한 속성으로 인코딩되었습니다.

ogg vorbis 형식은 다음과 같은 여러 파일의 일반 연결을 지원합니다.

$ cat file1.ogg file2.ogg > output.ogg

그러나 슬프게도 모든 플레이어가 이와 같은 파일을 이해할 수있는 것은 아닙니다. 예를 들어 모바일 오디오 플레이어와 같이 새로운 파일을 구입하지 마십시오. 그것을 이해하지 못하는 다른 프로그램은 gstreamer입니다. 입력 ogg 파일이 모두 동일한 스트림 ID를 갖는 경우에도이 방법이 작동하지 않습니다.

또한 원본 파일을 버리고 연결된 버전 만 유지하고 싶기 때문에 cat솔루션 과 마찬가지로 연결을 무손실로 수행하고 싶습니다 .

또한 파일 크기를 불필요하게 날려 버릴 수 있으므로 flac와 같은 무손실 형식으로 파일을 연결하지 않으려 고합니다. 괜찮다면 원본 ogg 파일을 유지할 수 있고 공간을 덜 사용할 것입니다.

ffmpeg는 때때로 concat demuxer를 사용하여 수행 할 수있는 것 같습니다 .

$ cat inputs.txt
file 'in1.ogg'
file 'in2.ogg'
$ ffmpeg -f concat -i inputs.txt -c copy out.ogg

입력 파일의 원시 16 진 덤프를 보면 출력 파일에 정확히 표시된 vorbis 패킷을 찾을 수 있습니다. 다시 인코딩이 실제로 발생하지 않는 것 같습니다.

그러나 이것은 모든 입력 파일에서 작동하지 않는 것 같습니다. 때때로 (이것이 무엇을 유발하는지 확실하지 않으면) ffmpeg는 경고를 줄 것입니다 :

Non-monotonous DTS in output stream 0:0; previous: 5011328, current: 5011200; changing to 5011329. This may result in incorrect timestamps in the output file.

그리고 나서 두 파일 사이에 아주 희미한 "간극"이 들립니다. 따라서 이것은 확실히 글로벌 솔루션이 아닙니다.

하나를 찾을 수 없으므로이 stackoverflow question 에 내 도구를 작성하려고했습니다 .

여러 ogg vorbis 파일을 연결하지만 다시 인코딩하지 않고 출력 당 단일 스트림으로 연결하는 방법이 있습니까? 어떤 도구가 그 일을 할 수 있습니까?



@JoshRumbut 그렇습니다. 파일이 일부 입력을 위해 결합되는 가청 공백이 포함되어 있습니다.
josch

PiTiVi를 사용 하고 타임 라인에 클립을 순차적으로 배치 할 수 있습니다.
harrymc

1
OP (나도)는 필요한 파일을 수집 한 후 사용자 상호 작용을 포함하지 않는 프로그래밍 방식의 솔루션을 원합니다.
Villermen

2
@ RalphRönnquist Sox는 입력을 다시 인코딩합니다.
josch

답변:


2

ffmpeg -i "concat:ogg1.ogg|ogg2.ogg|ogg3.ogg" -c copy out.ogg시스템에 연결된 ogg 파일을 생성합니다. 공유 메타 데이터로 인해 별도의 파일이 결합 된 것보다 약간 작습니다. 그것은 나에게 동일하게 들리므로 연결은 무손실이어야합니다. 그러나 이것은 파일 사이에 작은 간격을 추가하지 않습니다.

ffmpeg -f concat -safe 0 -i ogg1.ogg -i ogg2.ogg -c copy out.ogg 작동해야하지만 3.3.2부터 내 Homebrew (macOS) ffmpeg 에서이 오류가 발생합니다.

[concat @ 0x7f91e8800400] Line 1: unknown keyword 'OggS'
ogg1.ogg: Invalid data found when processing input

출처 : https://trac.ffmpeg.org/wiki/Concatenate


같은 오류가 발생합니다
Housemd

0

FFmpeg를 살펴볼 수 있습니다 . 그것은 내가 이해하지 못하는 많은 도구를 가지고 있지만, 정확히 이것을 할 수있는 도구가 있다는 것을 문서 에서 기억 합니다. 그렇지 않으면 VLC Media Player명령 줄을 사용할 수 있다고 생각합니다 .


1
답을 조금 넓힐 수 있습니까? 제품과 해당 문서를 가리키는 것만으로는 솔루션을 달성하는 방법을 실제로 설명하지 않습니다. 제품을 사용하여 문제를 해결하는 방법에 대한 지침을 여기에 포함시키는 것이 좋습니다. meta.superuser.com/questions/5329/…에서 소프트웨어 권장에 대한 유용한 지침을 참조하십시오 . 감사.
fixer1234

사용 ffmpeg -f concat -i inputs.txt -c copy out.ogg만으로는 작동하지 않습니다. ffmpeg로 어떻게 해결할 수 있다고 생각하는지 궁금합니다.
josch
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.