私の状況を説明しようと思います:
Androidの携帯電話でmp4形式のビデオを作成しています。このビデオを私のWebページとjwplayerで共有したいです。そのようにうまく動作します。 1つのスクリプトを使用して、すべてのすべての作品を正常にします。私はwebmでファイルを変換するために使用し、このタイプの埋め込みコードでjwplayerに挿入します:
<div id="player" align="center">
<script src="jwplayer.js" type="text/javascript"></script>
<script type="text/javascript"> jwplayer("player").setup({
height: 270,
image: "thumb.png",
levels: [
{file: 'file.mp4', type: 'video/mp4' },
{file: 'file.webm', type: 'video/webm' },
],
modes: [
{ type: 'html5' },
{ type: 'flash', src: 'player.swf' }
],
width: 480 }); </script></div>
mp4からwebmに変換するには、次のコマンドを使用します。
avconv -i "$file".mp4 "$file".webm
OK!問題は私の新しい写真カメラにあります。pentaxはAVIでビデオを作成します。この場合、jwplayerに埋め込むには、1つのmp4ファイルと1つのwebmファイルが必要です。
OK次のコマンドを使用します。
avconv -i "$videoname".AVI -c:v libx264 -crf 23 -c:a libfaac -b:a 192k "$videoname".mp4
結果は肯定的です。
今私がwebmでこの新しいmp4を変換するために使用する場合:
avconv -i "$file".mp4 "$file".webm
webmファイルが機能しません。..
aviファイルを使用したffprobeの例:
$ ffprobe IMGP0129.AVI
avprobe version 0.8.4-4:0.8.4-0ubuntu0.12.04.1, Copyright (c) 2007-2012 the Libav
developers
built on Nov 6 2012 16:51:33 with gcc 4.6.3
Input #0, avi, from 'IMGP0129.AVI':
Duration: 00:00:44.64, start: 0.000000, bitrate: 27089 kb/s
Stream #0.0: Video: mjpeg, yuvj420p, 1280x720, 30.08 tbr, 30.08 tbn, 30.08 tbc
Stream #0.1: Audio: pcm_u8, 32000 Hz, 1 channels, u8, 256 kb/s
出力のwebmのエラーメッセージの例:
$ avconv -i output.mp4 out2.webm
avconv version 0.8.4-4:0.8.4-0ubuntu0.12.04.1, Copyright (c) 2000-2012 the Libav
developers
built on Nov 6 2012 16:51:33 with gcc 4.6.3
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf53.21.0
Duration: 00:00:04.99, start: 0.000000, bitrate: 2228 kb/s
Stream #0.0(und): Video: h264 (Main), yuvj420p, 1280x720, 2193 kb/s, 30.01 fps,
30.01 tbr, 500k tbn, 60.01 tbc
Stream #0.1(und): Audio: aac, 32000 Hz, mono, s16, 54 kb/s
Incompatible pixel format 'yuvj420p' for codec 'libvpx', auto-selecting format 'yuv420p'
[buffer @ 0x2345340] w:1280 h:720 pixfmt:yuvj420p
[avsink @ 0x2356540] auto-inserting filter 'auto-inserted scaler 0' between the filter
'src' and the filter 'out'
[scale @ 0x2343220] w:1280 h:720 fmt:yuvj420p -> w:1280 h:720 fmt:yuv420p flags:0x4
[libvpx @ 0x23468a0] v1.0.0
Output #0, webm, to 'out2.webm':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf53.21.0
Stream #0.0(und): Video: libvpx, yuv420p, 1280x720, q=-1--1, 200 kb/s, 1k tbn,
30.01 tbc
Stream #0.1(und): Audio: libvorbis, 32000 Hz, mono, s16
Stream mapping:
Stream #0:0 -> #0:0 (h264 -> libvpx)
Stream #0:1 -> #0:1 (aac -> libvorbis)
Press ctrl-c to stop encoding
**[webm @ 0x2344de0] Application provided invalid, non monotonically increasing dts to
**muxer in stream 0: 33 >= 33**
**strong text**av_interleaved_write_frame(): Invalid argument**
助言がありますか?
最後に、興味がある人のために、これらのコマンドを使用して、ある種のビデオファイルを変換します。
avconv -i "$videoname".AVI -b 2048k -r 30 -c:a libmp3lame "$videoname".mp4
avconv -i "$videoname".AVI -c:v libx264 -ar 44100 -y "$videoname".flv
avconv -i "$videoname".mp4 -y "$videoname".webm
これらの3つのステップで、スクリプトに正しく埋め込むことができます。