새로운 코덱 x265 (libx265)를 사용하여 비디오 컬렉션을 인코딩하고 싶습니다.
이를 위해 저는 일반적으로 잘 작동하는 리눅스에서 멋진 bash 스크립트를 만들었습니다! 그러나 뭔가 이상합니다 :
나는 ffmpeg의 출력이 제 방식대로 에코되는 것을 금지합니다. x264 ( “오래된” ) 모든 것이 잘 작동합니다.하지만 x265를 사용하자마자 터미널에서 항상 이런 종류의 출력을 얻습니다.
x265 [info]: HEVC encoder version 1.7 x265 [info]: build info [Linux][GCC 5.1.0][64 bit] 8bpp x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64 x265 [info]: Main profile, Level-2.1 (Main tier) x265 [info]: Thread pool created using 2 threads x265 [info]: frame threads / pool features : 1 / wpp(5 rows) x265 [info]: Coding QT: max CU size, min CU size : 64 / 8 x265 [info]: Residual QT: max TU size, max depth : 32 / 1 inter / 1 intra x265 [info]: ME / range / subpel / merge : hex / 57 / 2 / 2 x265 [info]: Keyframe min / max / scenecut : 25 / 250 / 40 x265 [info]: Lookahead / bframes / badapt : 20 / 4 / 2 x265 [info]: b-pyramid / weightp / weightb / refs: 1 / 1 / 0 / 3 x265 [info]: AQ: mode / str / qg-size / cu-tree : 1 / 1.0 / 64 / 1 x265 [info]: Rate Control / qCompress : CRF-28.0 / 0.60 x265 [info]: tools: rd=3 psy-rd=0.30 signhide tmvp strong-intra-smoothing x265 [info]: tools: deblock sao
이것이 비디오를 인코딩하는 방법입니다. ffmpeg 사용 :
ffmpeg -i /input/file -c:v libx265 -c:a copy -loglevel quiet /output/file.mp4 <>/dev/null 2>&1
나는
<>/dev/null 2>&1
그리고
-loglevel quiet
이렇게 할 것이지만 분명히 실수입니다.
이 문제를 어떻게 해결할 수 있습니까?
감사합니다. 도와주세요!
답변
ffmpeg가 ffmpeg에게 말한 로그 수준을 사용하도록 x265 인코더에 지시하지 않는 것 같습니다. 사용하다. 따라서 ffmpeg 및 ffmpeg 내의 x265 인코더를 조용하게하려면 둘 모두에 대해 로그 수준 옵션을 설정해야합니다.
다음과 같은 ffmpeg 명령이있는 경우 :
ffmpeg -loglevel error -stats -i "inputfile.xyz" -c:v libx265 -x265-params parameter1=value:parameter2=value outputfile.xyz
다음과 같이 x265 매개 변수 목록에 log-level = error 옵션을 추가 할 수 있습니다.
ffmpeg -loglevel error -stats -i "inputfile.xyz" -c:v libx265 -x265-params log-level=error:parameter1=value:parameter2=value ....
댓글
- 답변 해 주셔서 감사합니다. 그것이 내가 찾은 해결책입니다! 대답이 너무 늦어도 ^^
- 개인적으로 선호하는 것은 진행 상황과 중요한 오류가 있으면 보는 것입니다. 또한 ' x265로 내보내는 중이므로이 추가 플래그가 필요합니다. 저는 개인적으로이 버그를 버그라고 생각하고 로그 레벨은 모든 것과 관련되어야하지만 ' 효과적이고 정확하게 억제하는 방법을 아는 것이 정말 좋습니다. 감사합니다!
Answer
<>/dev/null
는 표준 입력 만 연결합니다. /dev/null
에 출력하고 2>&1
는 이후 <>/dev/null
, 효과적으로 아무것도하지 않습니다.
>/dev/null 2>&1
로 변경하면 원하는 작업을 수행 할 수 있습니다.
댓글
- 감사합니다! 그것은 문제를 해결합니다. 하지만 대답에 실수가 있습니다.
1>&2
가 아니라2>&1
를 썼지 만 어쨌든 작동합니다. 🙂