내가 이것을 올바르게 묻고 있는지는 모르겠지만 여기에 있습니다. 내 생일을 맞아 DVD 상자 세트를 받았고 파일을 트랜스코딩하여 내 컴퓨터에 저장하여 볼 수 있게 했습니다. 원시 파일을 내 컴퓨터에 덤프한 후 다음 배치 명령을 사용하여 압축했습니다.
INPUT="$1"
for i in *.mp4 ; do
ffmpeg -i "$i" -vcodec h264 -acodec libfaac "$i.ts"
mv "$i.ts" "$i.mp4"
sleep 3
done
그 결과 압축률과 품질이 향상되었지만 폴더를 보면 아이콘에 있는 파일은 회색 상자일 뿐인데, 같은 폴더의 원본 파일에 비디오 이미지가 표시되어 있었습니다. (웃음, 그냥 화장품일 뿐이라는 건 알지만 귀찮습니다. :)
명령을 사용하면;
ffmpeg -i input.mp4 -vcodec h264 -acodec libfaac output.mp4
이미지 아이콘은 잘 표시되지만 (h264) 대신 (AVC1)로 인코딩되는데 이는 내가 원하는 것이 아닙니다.
배치 파일 명령에서 이 문제를 해결하여 원하는 대로 파일 아이콘을 표시할 수 있는 방법이 있습니까? 감사합니다!
답변1
Gyan이 제공한 정보 덕분에 배치 파일 명령 수정을 요청한 질문에 대해 다음과 같은 효과적인 솔루션을 찾을 수 있었습니다.
INPUT="$1"
for i in *.mp4 ; do
ffmpeg -i "$i" -vcodec h264 -acodec libfaac "$i.ts"
ffmpeg -i "$i.ts" -bsf:a aac_adtstoasc -c copy "$i.mp4"
rm *.ts
sleep 3
done
그러나 Gyan이 제공한 정보를 고려하면 전송 스트림 파일로 인코딩하는 단계를 건너뛴 다음 mp4로 다시 다중화하고 다음 배치 명령에서 mp4 파일을 간단히 압축할 수 있습니다.
INPUT="$1"
for i in *.mp4 ; do
ffmpeg -i "$i" -vcodec h264 -acodec libfaac "$i.mp4"
sleep 3
done
이는 이전 버전의 ffmpeg를 사용하여 수행되었다는 점을 명심하세요. 최신 버전의 ffmpeg의 경우 다음을 사용하여 압축 중인 비디오의 적절한 이미지 아이콘을 유지하면서 비디오를 압축합니다.
INPUT="$1"
for i in *.mp4 ; do
ffmpeg -i "$i" -vcodec h264 -acodec aac "$i.mp4"
sleep 3
done
배치 파일 명령을 사용하는 유일한 문제는 한 번의 클릭으로 여러 디렉터리 아래의 모든 파일에서 추가 파일 확장자를 제거하기 위해 pyrenamer를 사용하여 해결하는 파일 이름(filename.mp4.mp4)에 추가 파일 확장자를 추가한다는 것입니다.
배치 명령 내에서 이 문제를 해결하는 방법을 아는 사람이 있으면 댓글을 달아 주시면 이 답변을 수정하겠습니다. 나는 'mv' 명령의 변형을 시도했지만 운이 없었습니다.