ffmpeg를 사용하여 ts 파일을 mp4로 결합하는 방법은 무엇입니까?

ffmpeg를 사용하여 ts 파일을 mp4로 결합하는 방법은 무엇입니까?

인터넷 속도가 너무 느려 고화질을 시청할 수 없기 때문에 많은 스트림을 다운로드합니다. 스트림을 다운로드할 때 TS 파일을 가리키는 .m3u8 파일을 찾습니다. 그런 다음 다음 명령을 사용합니다.

ffmpeg -i stream.m3u8 vid.mp4

이것은 작동합니다. 하지만 이미 올바른 형식임에도 불구하고 기본적으로 모든 것을 다시 인코딩하기 때문에 시간이 정말 오래 걸립니다. 다시 인코딩하지 않으려면 다음 명령을 사용할 수 있습니다.

ffmpeg -i stream.m3u8 -vcodec copy -acodec copy vid.mp4

중단 없이 처음부터 끝까지 플레이할 때 잘 작동합니다. 하지만 뒤로 또는 앞으로 건너뛰면 vlc에서 이미지를 생성하는 데 문제가 발생합니다. 몇 초 동안 제대로 표시되지 않습니다. 이것은 매우 성가신 일입니다.

내 질문:완전히 다시 인코딩하지 않고 언제든지 좋은 VLC 렌더링을 사용하여 어떻게 비디오를 만들 수 있습니까?

답변1

파일을 단일 스트림으로 결합하는 대신 mp4로 인코딩하도록 ffmpeg에 요청하고 있습니다. 당신은사슬 같이 잇다into로 temp.ts변환한 다음 이를 .mp4with 으로 변환합니다 -codec copy.

또한 두 번째 단계에서 adts로 변환해야 한다고 생각합니다 .aac-bsf:a aac_adtstoasc

답변2

다시 인코딩하지 않으면 비디오의 키 프레임 등을 변경할 수 없어 설명하는 동작이 발생할 수 있습니다.

그러나 다음과 같이 시도해 볼 수 있습니다.

ffmpeg -i stream.m3u8 -codec:v "libx264" "-preset" "ultrafast" output.mp4

속도를 높이면 품질이 떨어지므로 "빠른" 것이 더 나을 수도 있다는 점을 명심하세요.

답변3

ffmpeg로 내 변형 보기 mp4조이너

스크린샷

관련 정보