DAV를 AVI로 변환하지 못했습니다.

DAV를 AVI로 변환하지 못했습니다.

다음 명령을 사용하여 CCTV 레코더의 DAV 형식 비디오 클립을 AVI(test-1.dav에서 test-1.avi로 변환)로 변환하고 싶습니다.

ffmpeg -y -i test\ -\ 1.dav -vcodec copy -movflags +faststart test\ -\ 1.avi

ffmpeg 버전 2.4.13을 사용하는 x86_64 Linux와 ffmpeg 버전 2.0.2를 사용하는 Synology에서 제대로 작동합니다. 변환된 파일은 Windows, Android, iPad 및 Linux에서 완벽하게 재생할 수 있습니다. 하지만 최신 버전의 소프트웨어를 사용하여 Synology에서 변환하려고 하면 실패했습니다(ffmpeg 버전 2.7.1). 변환 프로세스의 출력은 다음과 같습니다.

ffmpeg version 2.7.1 Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.9.3 (crosstool-NG 1.20.0) 20150311 (prerelease)
configuration: --prefix=/usr --incdir='${prefix}/include/ffmpeg' --arch=arm --target-os=linux --cross-prefix=/usr/local/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi- --enable-cross-compile --enable-optimizations --enable-pic --enable-gpl --enable-shared --disable-static --enable-version3 --enable-nonfree --enable-libfaac --enable-encoders --enable-pthreads --disable-bzlib --disable-protocol=rtp --disable-muxer=image2 --disable-muxer=image2pipe --disable-swscale-alpha --disable-ffserver --disable-ffplay --disable-devices --disable-bzlib --disable-altivec --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libmp3lame --disable-vaapi --disable-decoder=amrnb --disable-encoder=zmbv --disable-encoder=dca --disable-encoder=ac3 --disable-encoder=ac3_fixed --disable-encoder=eac3 --disable-decoder=dca --disable-decoder=eac3 --disable-decoder=truehd --cc=/usr/local/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-ccache-gcc
libavutil      54. 27.100 / 54. 27.100
libavcodec     56. 41.100 / 56. 41.100
libavformat    56. 36.100 / 56. 36.100
libavdevice    56.  4.100 / 56.  4.100
libavfilter     5. 16.101 /  5. 16.101
libswscale      3.  1.101 /  3.  1.101
libswresample   1.  2.100 /  1.  2.100
libpostproc    53.  3.100 / 53.  3.100
Input #0, h264, from 'test - 1.dav':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: h264 (Main), yuv420p, 704x576, 25 fps, 25 tbr, 1200k tbn, 50 tbc
Output #0, avi, to 'test - 1.avi':
Metadata:
ISFT            : Lavf56.36.100
Stream #0:0: Video: h264 (H264 / 0x34363248), yuv420p, 704x576, q=2-31, 25 fps, 25 tbr, 50 tbn, 50 tbc
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
[avi @ 0xb0ff0] H.264 bitstream malformed, no startcode found, use the video bitstream filter 'h264_mp4toannexb' to fix it ('-bsf:v h264_mp4toannexb' option with ffmpeg)
av_interleaved_write_frame(): Invalid data found when processing input
frame=    1 fps=0.0 q=-1.0 Lsize=       6kB time=00:00:00.02 bitrate=2300.0kbits/s    
video:40kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Conversion failed!

각 경우에 변환을 위해 동일한 입력 파일과 동일한 ffmpeg 구문을 사용했다는 점을 언급해야 합니다. 유일한 차이점은 ffmpeg 버전입니다. 가장 이상한 점은 최신 버전이 제대로 작동하지 않는다는 것입니다. 내가 무슨 실수를 했나요? 어떤 아이디어가 있나요?

답변1

새로운 ffmpeg버전거부하다시작 코드 없이 H.264로 인코딩된 비디오를 AVI로 다중화합니다. -bsf:v h264_mp4toannexb출력에 지시된 대로 사용해야 합니다 ffmpeg. 동영상이 다시 인코딩되지는 않습니다.

관련 정보