추가 코덱을 설치하지 않고 Windows XP에서 Windows Media Player로 재생할 수있는 형식으로 짧은 비디오를 인코딩해야합니다. 레코딩 과정에서는 ffmpeg를 사용하고 있습니다.
이미 msmpeg4v2
코덱을 사용해 보았지만 품질이 끔찍합니다 (원본 비디오와 비교하면 큰 “블록”이 표시됨). 즉시 사용할 수 있고 최소한 “ok”품질을 가진 다른 코덱을 찾고 있습니다.
주석은 코덱이 아니라 비트 전송률 문제 일 수 있다고 표시 했으므로 다음은 내가 사용한 명령입니다.
ffmpeg -i x.flv -vcodec msmpeg4v2 -acodec adpcm_ima_wav x.avi
산출:
Input #0, flv, from 'x.flv':
Metadata:
moovPosition : 39337765
avcprofile : 100
avclevel : 30
aacaot : 2
videoframerate : 25
audiochannels : 2
Duration: 00:06:19.52, start: 0.000000, bitrate: 836 kb/s
Stream #0:0: Video: h264 (High), yuv420p, 702x396 [SAR 2596:3679 DAR 354:283], 25 tbr, 1k tbn, 50 tbc
Stream #0:1: Audio: aac, 48000 Hz, stereo, s16
w:702 h:396 pixfmt:yuv420p tb:1/1000000 sar:2596/3679 sws_param:
Output #0, avi, to 'x.avi':
Metadata:
moovPosition : 39337765
avcprofile : 100
avclevel : 30
aacaot : 2
videoframerate : 25
audiochannels : 2
ISFT : Lavf53.32.100
Stream #0:0: Video: msmpeg4v2 (MP42 / 0x3234504D), yuv420p, 702x396 [SAR 2596:3679 DAR 354:283], q=2-31, 200 kb/s, 25 tbn, 25 tbc
Stream #0:1: Audio: adpcm_ima_wav ([17][0][0][0] / 0x0011), 48000 Hz, stereo, s16, 384 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (h264 -> msmpeg4v2)
Stream #0:1 -> #0:1 (aac -> adpcm_ima_wav)
Press [q] to stop, [?] for help
frame= 9485 fps=436 q=31.0 Lsize= 31197kB time=00:06:19.48 bitrate= 673.5kbits/s
video:12628kB audio:17913kB global headers:0kB muxing overhead 2.149820%
답변
다른 것을 지정하지 않았으므로 동영상 스트림이을 (를) 사용하도록 설정되어 있습니다 q=2-31, 200 kb/s
. 이 결과 673.5kbits
비 H.264 코덱에 대한 최소한, 많이하지하지 않은, 평균.
강제 시도
-b:v 1000K
예를 들어 특정 비트 전송률 . 이전 FFmpeg 버전에서는을 사용할 수 있습니다-b
.-qscale 2
예를 들어 고정 된 품질 수준 . 여기서 값의 범위는 1-31입니다. Sane 값qscale
의 범위는 2-5입니다. 가장 좋은 결과를 얻는 것을 시도하십시오.
Windows에서 실제로 기본적으로 지원되는 코덱 은 다음과 같습니다.
오늘날 수백 개의 오디오 및 비디오 코덱이 사용되고 있습니다. 일부는 Microsoft에서 만든 것이지만 대부분의 코덱은 다른 회사, 조직 또는 개인이 만든 것입니다. 기본적으로 Windows 운영 체제 및 플레이어에는 Windows Media Audio, Windows Media Video 및 MP3와 같이 가장 많이 사용되는 코덱이 포함되어 있습니다.
또한 참조 윈도우 미디어 플레이어에서 지원하는 멀티미디어 파일 형식을 자세한 내용은.
FFmpeg를 사용하면 mpeg1video
(MPEG-1) 또는 mpeg2video
(MPEG-2) 또는 msmpeg4
(MPEG-4 Part II)를 시도 할 수 있지만 후자가 보편적으로 지원되는지 확실하지 않습니다. 안전하게 재생하려면 MPEG-1 또는 MPEG-2를 사용해야합니다.
답변
Windows Media Player (Windows 7)에서 원래 잘 재생 된 aac / h264 .mp4 파일과 비슷한 문제가 있습니다. VirtualDub에서 편집하고 .avi 형식으로 저장 한 후 ffmpeg 기본값을 사용하여 aac / h264 .mp4로 다시 변환하면 Windows Media Player에서 더 이상 재생되지 않습니다.
MediaInfo를 사용하여 원본 파일과 최종 파일을 비교 한 결과, 다른 인코딩 프로파일과 다른 크로마 서브 샘플링 설정 (4 : 2 : 0, 마지막 4 : 4 : 4)이 사용되었습니다. 다음 옵션을 사용하여 ffmpeg로 파일을 다시 인코딩하면 WMP에서 파일을 올바르게 재생할 수있었습니다.
ffmpeg -i edited.avi -pix_fmt yuv420p fixed.mp4
답변
ffmpeg -r 30 -i foo.flv -codec:v mpeg4 -flags:v +qscale -global_quality:v 0 -codec:a libmp3lame foo.avi
답변
두 코덱 모두 AVI 컨테이너에서 이미 지원되므로 할 수 있습니다.
ffmpeg -i x.flv -vcodec copy -acodec copy x.avi
XP가 h.264를 지원한다고 가정합니다. 그렇지 않으면 wmv 파일, 동일한 양자화기를 사용하고 ffmpeg가 코덱을 채우도록하십시오. 이렇게하면 원본과 거의 동일한 품질을 얻을 수 있습니다.
ffmpeg -i x.flv -sameq x.wmv