비디오 ffmpeg를 연결할 수 없습니다


9

일종의 제목 화면 또는 면책 조항 화면으로 많은 비디오의 앞면에 연결하려는 비트 맵이 있습니다.

비디오의 나머지 부분과 동일한 속성을 가진 비디오로 바꾸려고합니다. 먼저 비디오를 조사합니다.

ffmpeg version 2.2.1 Copyright (c) 2000-2014 the FFmpeg developers
  built on Apr 11 2014 22:50:38 with Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/2.2.1 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid
  libavutil      52. 66.100 / 52. 66.100
  libavcodec     55. 52.102 / 55. 52.102
  libavformat    55. 33.100 / 55. 33.100
  libavdevice    55. 10.100 / 55. 10.100
  libavfilter     4.  2.100 /  4.  2.100
  libavresample   1.  2.  0 /  1.  2.  0
  libswscale      2.  5.102 /  2.  5.102
  libswresample   0. 18.100 /  0. 18.100
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'EO1.mp4':
  Metadata:
major_brand     : isom
minor_version   : 512
compatible_brands: isomiso2avc1mp41
creation_time   : 1970-01-01 00:00:00
encoder         : Lavf52.78.3
  Duration: 00:00:17.77, start: 0.000000, bitrate: 582 kb/s
Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 584x328 [SAR 1:1 DAR 73:41], 512 kb/s, 23.98 fps, 23.98 tbr, 1199 tbn, 47.96 tbc (default)
Metadata:
  creation_time   : 1970-01-01 00:00:00
  handler_name    : VideoHandler
Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 64 kb/s (default)
Metadata:
  creation_time   : 1970-01-01 00:00:00
  handler_name    : SoundHandler

그런 다음 비슷한 파일을 만들려고합니다.

/usr/local/Cellar/ffmpeg/2.2.1/bin/ffmpeg -y -loop 1 -i Disclaimer.png -c : v libx264 -r 23.98 -t 5 -pix_fmt yuv420p -profile : v 주 고지 사항 .mp4

제대로 작동하는 것 같습니다. 내가 기대하는 비디오가 재생됩니다. 속성은 매우 비슷합니다. 차이점은 다음과 같습니다.

< Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'disclaimer.mp4':
---
> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'EO1.mp4':
18,20c18,21
<     encoder         : Lavf55.33.100
<   Duration: 00:00:05.01, start: 0.000000, bitrate: 21 kb/s
<     Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 584x328 [SAR 1:1 DAR 73:41], 17 kb/s, 23.98 fps, 23.98 tbr, 19184 tbn, 47.96 tbc (default)
---
>     creation_time   : 1970-01-01 00:00:00
>     encoder         : Lavf52.78.3
>   Duration: 00:00:17.77, start: 0.000000, bitrate: 582 kb/s
>     Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 584x328 [SAR 1:1 DAR 73:41], 512 kb/s, 23.98 fps, 23.98 tbr, 1199 tbn, 47.96 tbc (default)
21a23
22a25,28
>     Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 64 kb/s (default)
>     Metadata:
>       handler_name    : SoundHandler

그러나 연결하려고하면 오류가 발생합니다.

> $ cat temporary.txt 

    file disclaimer.mp4
    file EO1.mp4

/usr/local/Cellar/ffmpeg/2.2.1/bin/ffmpeg -y -f concat -i temporary.txt -c 복사 출력 .mp4

[concat @ 0x7fd880806600] Estimating duration from bitrate, this may be inaccurate
Input #0, concat, from 'temporary.txt':
  Duration: 00:00:00.02, start: 0.000000, bitrate: 17 kb/s
Stream #0:0: Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 584x328 [SAR 1:1 DAR 73:41], 17 kb/s, 23.98 fps, 23.98 tbr, 19184 tbn, 47.96 tbc
Output #0, mp4, to 'output.mp4':
  Metadata:
encoder         : Lavf55.33.100
Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 584x328 [SAR 1:1 DAR 73:41], q=2-31, 17 kb/s, 23.98 fps, 19184 tbn, 19184 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
[mp4 @ 0x7fd880829a00] Non-monotonous DTS in output stream 0:0; previous: 93600, current: 5951; changing to 93601. This may result in incorrect timestamps in the output file.
[concat @ 0x7fd880806600] Invalid stream index 1
[mp4 @ 0x7fd880829a00] Non-monotonous DTS in output stream 0:0; previous: 93601, current: 6001; changing to 93602. This may result in incorrect timestamps in the output file.
[concat @ 0x7fd880806600] Invalid stream index 1
[mp4 @ 0x7fd880829a00] Non-monotonous DTS in output stream 0:0; previous: 93602, current: 6051; changing to 93603. This may result in incorrect timestamps in the output file.

...

frame=  546 fps=0.0 q=-1.0 Lsize=    1127kB time=00:00:04.90 bitrate=1882.9kbits/s    
video:1123kB audio:0kB subtitle:0 data:0 global headers:0kB muxing overhead 0.349865%

출력에는 나머지 비디오가 아닌 고지 사항 파일 만 포함되어있는 것 같습니다.

나는 또한 그것이 무엇인가를 "추정"해야한다고 생각하는 이유를 혼동한다. 입력 FPS 및 입력 지속 시간을 알고 있습니다. 이것이 문제인지 확실하지 않습니다. 어쩌면 버그 일 수도 있습니다.

다른 옵션은 "concat filter"를 사용하는 것이지만 손실 된 트랜스 코드입니다. 오히려 연결 후 두 번째 비디오를 이전과 동일하게 유지하고 싶습니다.

편집 : 세 번째 옵션 인 concat "protocol"을 시도했습니다. 문서는 사용을 권장하지 않지만 다른 두 개 (Concat demuxer 및 concat 필터)보다 잘 작동했습니다.


1
궁금합니다. 제작 시간이 1970 년을 보여주는 이유는 무엇입니까?
Rajib

대신 ( 또는 다른 비디오를 사용하여 만든 경우가 아니라면) 또는를 -r 23.98사용해야합니다 . 그래도 현재 문제가 해결되지 않을 수 있습니다. -r 24000/1001-r ntsc-film-r 23.98
llogan

당신이 당신의 자신의 빌드를 사용한다면, 당신은 또 다른 중요한 버전을 구축하는 것을 고려할 수 있습니다 ...
174140

답변:


1

나는 이것이 당신이 찾고있는 대답이 아니라는 것을 알고 있지만 비디오 편집 소프트웨어를 사용하여 이것을하지 않는 이유는 무엇입니까? 비디오 편집은 다른 프레임 속도, 코덱 등을 취해이를 대상 형식으로 결합 할 수 있으며 일반 소프트웨어에서 재생할 수 있습니다. 여러 프로그램에 고지 사항을 추가해야하는 경우 여러 프로그램에서 배치 모드를 제공합니다.

무료 오픈 소스 비디오 편집기와 독점 제품이 있습니다. 나는 당신이하고있는 일은 기본적으로 동일한 유형과 형식의 파일을 결합하는 연결이 설계된 것 이외의 방법이라고 생각합니다.


0

두 비디오는 프레임 스케일 크기, 종횡비, 초당 프레임 수 및 비트 전송률과 관련하여 정확히 동일한 코딩이어야합니다.

eRrightSofts Super (c) 변환기를 사용해보십시오. ffmpeg를위한 매우 광범위한 GUI입니다. 또한 "MediaInfo"가 포함되어 있으므로 동영상이 정확히 같은지 확인할 수 있습니다.

저자는 GUI를 제외하고는 소유권을 주장하지 않으며 ffmpeg 등을 완전히 인정합니다.

그것은 당신이 필요로하는 것을 훨씬 더 많이해야합니다 . 프리웨어입니다.

개인적으로 파일을 결합하고 비디오 또는 오디오를 추출하며 비디오를 다양한 형식으로 레코딩하는 데 사용했습니다. 그 이름은 슈퍼라고 말합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.