Saya ingin menggabungkan dua file flv (diunduh dari Youtube.com) oleh alat baris perintah Linux.
The ffmpeg
tutorial terlalu rumit, jadi aku mencoba mencode
tutorial .
Tapi saya mendapatkan output kosong. Saya tidak tahu cara memperbaiki masalah.
ffmpeg -i input_1.flv
ffmpeg version 0.8.1-4:0.8.1-0ubuntu1, Copyright (c) 2000-2011 the Libav developers
built on Mar 22 2012 05:29:10 with gcc 4.6.3
This program is not developed anymore and is only provided for compatibility. Use avconv instead (see Changelog for the list of incompatible changes).
[flv @ 0x89faaa0] Estimating duration from bitrate, this may be inaccurate
Seems stream 0 codec frame rate differs from container frame rate: 59.94 (2997/50) -> 29.97 (30000/1001)
Input #0, flv, from 'input_1.flv':
Metadata:
starttime : 0
totalduration : 173
totaldatarate : 457
bytelength : 9874241
canseekontime : true
sourcedata : B4A7D6704MH1334385311768958
purl :
pmsg :
Duration: 00:02:52.83, start: 0.000000, bitrate: 459 kb/s
Stream #0.0: Video: h264 (Main), yuv420p, 640x360 [PAR 1:1 DAR 16:9], 360 kb/s, 29.97 tbr, 1k tbn, 59.94 tbc
Stream #0.1: Audio: aac, 44100 Hz, stereo, s16, 99 kb/s
At least one output file must be specified
ffmpeg -i input_2.flv
ffmpeg version 0.8.1-4:0.8.1-0ubuntu1, Copyright (c) 2000-2011 the Libav developers
built on Mar 22 2012 05:29:10 with gcc 4.6.3
This program is not developed anymore and is only provided for compatibility. Use avconv instead (see Changelog for the list of incompatible changes).
[flv @ 0x85b7aa0] Estimating duration from bitrate, this may be inaccurate
Seems stream 0 codec frame rate differs from container frame rate: 59.94 (2997/50) -> 29.97 (30000/1001)
Input #0, flv, from 'input_2.flv':
Metadata:
starttime : 0
totalduration : 488
totaldatarate : 254
bytelength : 15467674
canseekontime : true
sourcedata : BADC21903MH1334385484128583
purl :
pmsg :
Duration: 00:08:07.54, start: 0.000000, bitrate: 250 kb/s
Stream #0.0: Video: h264 (Main), yuv420p, 640x360 [PAR 1:1 DAR 16:9], 151 kb/s, 29.97 tbr, 1k tbn, 59.94 tbc
Stream #0.1: Audio: aac, 44100 Hz, stereo, s16, 99 kb/s
At least one output file must be specified
mencoder -of lavf -oac copy -ovc copy -o output.flv input_1.flv input_2.flv
MEncoder svn r34540 (Ubuntu), built with gcc-4.6 (C) 2000-2012 MPlayer Team
success: format: 0 data: 0x0 - 0x96ab41
libavformat version 53.21.0 (external)
Mismatching header version 53.19.0
libavformat file format detected.
[flv @ 0xb6b09d80]Estimating duration from bitrate, this may be inaccurate
[lavf] stream 0: video (h264), -vid 0
[lavf] stream 1: audio (aac), -aid 0
VIDEO: [H264] 640x360 0bpp 29.970 fps 360.0 kbps (43.9 kbyte/s)
[V] filefmt:44 fourcc:0x34363248 size:640x360 fps:29.970 ftime:=0.0334
** MUXER_LAVF *****************************************************************
REMEMBER: MEncoder's libavformat muxing is presently broken and can generate
INCORRECT files in the presence of B-frames. Moreover, due to bugs MPlayer
will play these INCORRECT files as if nothing were wrong!
*******************************************************************************
OK, exit.
videocodec: framecopy (640x360 0bpp fourcc=34363248)
Audio format 0x4134504d is incompatible with '-oac copy', please try '-oac pcm' instead or use '-fafmttag' to override it.
Exiting...
mencoder -of lavf -oac pcm -ovc copy -o output.flv input_1.flv input_2.flv
MEncoder svn r34540 (Ubuntu), built with gcc-4.6 (C) 2000-2012 MPlayer Team
success: format: 0 data: 0x0 - 0x96ab41
libavformat version 53.21.0 (external)
Mismatching header version 53.19.0
libavformat file format detected.
[flv @ 0xb6bb6d80]Estimating duration from bitrate, this may be inaccurate
[lavf] stream 0: video (h264), -vid 0
[lavf] stream 1: audio (aac), -aid 0
VIDEO: [H264] 640x360 0bpp 29.970 fps 360.0 kbps (43.9 kbyte/s)
[V] filefmt:44 fourcc:0x34363248 size:640x360 fps:29.970 ftime:=0.0334
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
libavcodec version 53.35.0 (external)
Mismatching header version 53.32.2
AUDIO: 44100 Hz, 2 ch, s16le, 99.0 kbit/7.02% (ratio: 12376->176400)
Selected audio codec: [ffaac] afm: ffmpeg (FFmpeg AAC (MPEG-2/MPEG-4 Audio))
==========================================================================
** MUXER_LAVF *****************************************************************
REMEMBER: MEncoder's libavformat muxing is presently broken and can generate
INCORRECT files in the presence of B-frames. Moreover, due to bugs MPlayer
will play these INCORRECT files as if nothing were wrong!
*******************************************************************************
OK, exit.
videocodec: framecopy (640x360 0bpp fourcc=34363248)
VIDEO CODEC ID: 28
AUDIO CODEC ID: 2e, TAG: 0
Writing header...
[flv @ 0xb6bb6d80]Codec for stream 0 does not use global headers but container format requires global headers
[flv @ 0xb6bb6d80]Codec for stream 1 does not use global headers but container format requires global headers
[NULL @ 0xb6472380]codec not compatible with flv
Floating point exception (core dumped)
stat output.flv
File: `output.flv'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 700h/1792d Inode: 1722857 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ kev) Gid: ( 1000/ kev)
Access: 2012-05-04 10:44:45.153319669 +0800
Modify: 2012-05-04 10:44:45.153319669 +0800
Change: 2012-05-04 10:44:45.153319669 +0800
Birth: -
mencoder -forceidx -of lavf -oac copy -ovc copy -o output.flv clip1.flv clip2.flv clip3.flv
sumberJawaban:
Saya pribadi akan melakukan ini dengan ffmpeg
Demuxer perhatian
Pertama buat file bernama
inputs.txt
yang terlihat seperti ini:Kemudian gunakan ffmpeg seperti:
(Anda dapat menggunakan
output.flv
, meskipun MP4 adalah format yang umumnya lebih bermanfaat). Demuxer tersedia pada versi ffmpeg mulai dari 1.1 dan seterusnya. Jika Anda ingin tetap menggunakan versi ffmpeg yang sudah usang karena beberapa alasan, Anda dapat menggunakanProtokol concat
Ini agak rumit. Wadah FLV tidak mendukung Rangkaian pada tingkat file, sehingga Anda harus remux ke wadah yang tidak - seperti Transport Stream MPEG. Sayangnya, dengan video h.264 dan audio AAC, Anda harus menerapkan beberapa filter bit stream.
Karena Anda menggunakan linux, Anda dapat menggunakan pipa bernama.
Anda harus melakukan hal berikut dalam tiga jendela teminal terpisah (atau tab jika emulator terminal Anda mendukungnya -
ctrl+shift+t
biasanya membuka tab baru):Anda dapat, pada kenyataannya, menjalankan semua itu pada satu baris perintah (yang tampak rumit):
Pastikan output.mp4 belum ada, ini tidak akan berfungsi. Jika seseorang membaca ini pada sistem yang tidak mendukung pipa bernama, mereka harus menggunakan:
Ini akan membuat sepasang file perantara yang disebut temp0.ts dan temp1.ts, yang dapat dihancurkan dengan aman ketika Anda selesai.
Perhatikan bahwa petunjuk ini akan berfungsi untuk file FLV yang ditentukan dalam OP, dan mungkin FLV paling modern dari internet, karena hampir secara universal menggunakan video h264 dan audio aac. Untuk codec lain, instruksi ini harus sedikit di-tweak.
sumber
Apakah Anda bersikeras menggunakan format FLV? Anda dapat mengonversikannya ke mpg atau format lain (rujuk ini ) dan kemudian bergabung dengan mereka (rujuk ini ).
atau mungkin Anda bisa mencoba metode bergabung langsung pada file flv.
EDIT
Baca ini atau ini . Ini menggunakan beberapa parameter berbeda untuk MEncoder.
sumber
Saya menemukan paket python: http://pypi.python.org/pypi/vnc2flv/
flvcat.py
flvcat.py
adalah program pengeditan sederhana untuk film FLV. Ini mendukung penggabungan banyak film, kliping ukuran bingkai film, pengambilan sampel ulang film ke ukuran yang lebih kecil dengan auto-panning, dll. Sintaks:Untuk setiap file film, Anda dapat memotong bagian-bagian film untuk ditambahkan dengan menentukan rentangnya. Ranges adalah daftar milidetik terpisah yang dipisahkan koma. Sebagai contoh,
berarti klip 10 detik dari film out.flv (0: 10-0: 20). Menentukan hanya satu ujung rentang yang didukung:
berarti seluruh film kecuali 10 detik pertama. Ketika rentang dihilangkan, seluruh film digunakan.
Contoh:
Pilihan:
sumber