최근에 Synology Diskstation DS412 +를 구입했으며, mp4 파일로 변환/변환하고 싶은 많은 .mkv 영화를 가지고 있습니다. 직접 내 XBox 360으로 이동합니다. 내 노트북에서 Handbrake를 사용하지만,이 작업을 내 NAS에서 직접 수행 할 수 있습니다.mkv 영화를 mp4로 변환하여 XBox 360으로 스트리밍하는 방법
나는 트랜스 코딩 매우 리눅스에 녹슨 및 새로운 해요,하지만 난 현재이 스크립트는 다음과 같다 :
#!/bin/bash
for dir in *; do
if test -d "$dir"; then
#echo $dir
for file in "$dir"/*.mkv; do
noextension=${file%.*}.mp4
ffmpeg -y -i "$file" -vcodec copy -acodec copy "$noextension"
done
fi
done
MKV 내에서 어느, 나는 그것을 이해, 단순히 복사 오디오 및 비디오 구성 요소 컨테이너에 넣고 새로운 mp4 컨테이너에 삽입합니다. 이 파일은 여러 파일에 적용되었지만 작동하지 않는 번호가 있습니다. 다음
는실패한 실행에 대한 출력의 예입니다 :
ffmpeg version UNKNOWN, Copyright (c) 2000-2011 the FFmpeg developers
built on Sep 16 2013 00:45:02 with gcc 4.2.1
configuration: --prefix=/usr/syno --arch=i686 --target-os=linux --cross-prefix=/usr/local/i686-linux-gnu/bin/i686-linux-gnu- --enable-cross-compile --enable-optimizations --disable-yasm --disable-altivec --enable-pic --enable-shared --disable-static --disable-swscale-alpha --disable-ffserver --disable-ffplay --enable-libmp3lame --enable-libfaac --enable-nonfree --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-decoder=amrnb --disable-indev=alsa --disable-outdev=alsa --disable-encoder=dca --disable-encoder=ac3 --disable-encoder=ac3_fixed --disable-encoder=ac3_float --disable-encoder=eac3 --disable-decoder=dca --disable-decoder=eac3 --disable-decoder=truehd --cc=/usr/local/i686-linux-gnu/bin/i686-linux-gnu-ccache-gcc
libavutil 50. 40. 1/50. 40. 1
libavcodec 52.120. 0/52.120. 0
libavformat 52.108. 0/52.108. 0
libavdevice 52. 4. 0/52. 4. 0
libavfilter 1. 77. 0/1. 77. 0
libswscale 0. 14. 0/0. 14. 0
[matroska,webm @ 0x80726c0] Estimating duration from bitrate, this may be inaccurate
Seems stream 1 codec frame rate differs from container frame rate: 47.95 (5994/125) -> 23.98 (24000/1001)
... 그리고 다음 입력 장 시작과 끝 시간과 목록 ...
Stream #0.0(eng): Audio: aac, 48000 Hz, stereo, s16 (default)
Stream #0.1(eng): Video: h264 (High), yuv420p, 1280x692 [PAR 1:1 DAR 320:173], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
... 다음 출력 장 시작 및 종료 시간 목록 ...
Stream #0.0(eng): Video: ![0][0][0]/0x0021, yuv420p, 1280x692 [PAR 1:1 DAR 320:173], q=2-31, 2997 tbn, 23.98 tbc (default)
Stream #0.1(eng): Audio: libfaac, 48000 Hz, stereo (default)
Stream mapping:
Stream #0.1 -> #0.0
Stream #0.0 -> #0.1
Press [q] to stop encoding
[mp4 @ 0x808a020] pts < dts in stream 0
av_interleaved_write_frame(): Invalid data found when processing input
XBox 지원 웹 사이트에서는 지원되는 파일 형식에 대한 세부 정보 (H.264 표준에 포함 된 mp4 포함) : http://support.xbox.com/ar-SA/xbox-360/system/audio-video-playback
나는 약간의 손실이 있습니다. http://www.ffmpeg.org/ffmpeg.html을 통해 읽었지만 ffmpeg의 오류 메시지는 매우 도움이되지 않습니다. Synology Box에서이 항목을 실행할 때 리소스가 희소하게 나옵니다.
ffmpeg -i "$file" "$noextension"
및
ffmpeg -y -i "$file" -vcodec mpeg4 -acodec libfaac "$noextension"
하지만 그 모두 나에게 다음과 같은 오류 제공 :
Error while opening encoder for output stream #0.0 - maybe incorrect parameters such as bit_rate, rate, width or height
내가 가정을
나는 같은 내 스크립트의 몇 가지 순열을 시도했다 비트율, 화면 비율과 같은 것들과 함께 입력 및 출력 코덱을 구체적으로 지정해야하지만 내가 어디에서 멀어 지는지.
도움이 될 것입니다.
나는 ffmpeg 버전을 먼저 업데이트하지 않고 계속 진행할 것입니다. 2011 년부터라면 3 살입니다. 최신 버전을 다운로드하거나 컴파일하십시오. http://ffmpeg.org/download.html - 다시 시도해보십시오. 관련이 있다고 생각되는 부분뿐만 아니라 전체 커밋되지 않은 명령 행 출력을 포함하십시오. 감사합니다 – slhck