나중에 트림되고 mp4로 인코딩되도록 연결되는 ts 파일 목록이 있습니다.
모든 것이 정상적으로 작동하지만 ... 지금 당장 문제는 파일이 다시 인코딩된다는 것입니다 .TS는 이미 h264와 mp3이므로 mp4로 포장하기 때문에 원하는 것은 아닙니다. 승인. 실제로 이것은 작동합니다.
ffmpeg -i file.ts -c copy file.mp4
그러나 이것은 아닙니다 :
ffmpeg -i videohls-1935m-index.ts -y -filter_complex \
[0:v]trim=0:10,setpts=PTS-STARTPTS[v0]; \
[0:a]atrim=0:10,asetpts=PTS-STARTPTS[a0]; \
[0:v]trim=30:90,setpts=PTS-STARTPTS[v1]; \
[0:a]atrim=30:90,asetpts=PTS-STARTPTS[a1]; \
[0:v]trim=100:200,setpts=PTS-STARTPTS[v2]; \
[0:a]atrim=100:200,asetpts=PTS-STARTPTS[a2]; \
[0:v]trim=250:350,setpts=PTS-STARTPTS[v3]; \
[0:a]atrim=250:350,asetpts=PTS-STARTPTS[a3]; \
[v0][a0][v1][a1][v2][a2][v3][a3]concat=n=4:v=1:a=1[out] \
-map [out] \
-c copy \
videohls-1935m-index.mp4
출력이 [out]에 매핑 된 가상 엑시트에서 나오기 때문에 코덱을 "복사"하지 않을 것입니다. 이므로 한 말에 "코덱"이 없으므로 복사 할 수 없습니다.
이것은 두 가지 문제가 있음을 의미합니다.
- 파일이 더 작아서 전혀 나쁘지는 않지만 ...
- 파일이 다시 인코딩되어 품질이 떨어집니다.
비디오 품질을 유지하기 위해 이것을 피하려면 어떻게해야합니까?
비디오 필터는 압축되지 않은 원시 프레임에서 작동하므로 필터로 처리하기 전에 디코딩 한 후 인코딩해야합니다. "copy"코덱을 사용하면 실제로이 스트림에 대한 필터가 비활성화됩니다 ( ffmpeg.org/ffmpeg-all.html#Stream-copy 참조) .
—
SirDarius
빠른 답변을 주셔서 감사합니다 ... 질문 : 그럼 내가 더 빨리 할 수있는 방법이 없습니까? 간단하고 빠르게 유지하고 싶습니다. 먼저 파일을 만든 다음 연결하여 수행 할 수 있습니다. 이것이이 방법보다 낫다고 생각합니까?
—
AbrahamSustaita
어떻게 마이그레이션 할 수 있습니까?
—
AbrahamSustaita
플래그 링크를 클릭하고 중재자의 관심을 요청할 수 있습니다.
—
llogan