
Recherche avancée
Autres articles (46)
-
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;
-
Ecrire une actualité
21 juin 2013, parPrésentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
Vous pouvez personnaliser le formulaire de création d’une actualité.
Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...) -
Publier sur MédiaSpip
13 juin 2013Puis-je poster des contenus à partir d’une tablette Ipad ?
Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir
Sur d’autres sites (7926)
-
Muxing together a .ts file and a sub file causes playback issues in video and audio [closed]
3 mai 2024, par Meta83So I have a .ts file and a converted .dvb sub file (.SRT TO .DVB) that I want to mux togheter using FFMPEG. The mux is a success and the file plays fine in VLC or other modern divce.However I have an older divce (around 10 yeras old) where playback has issues, whenever a line of subs is displayd the picture and and audio gets corrupted and frezzes up and as sson there are no lins everything looks good again and so on. Note that subs are displayd correctly and they are not affected by the issue, only picture and audio is.


I have tried using diffrent command without any luck but here is the most basic command that should work :


ffmpeg -i <video file="file"> -i <dvb file="file"> -f mpegts -c:v copy -c:a copy -c:s copy -copyts <output file="file">
</output></dvb></video>


Here is the output I get frome FFMPEG :


ffmpeg version 7.0-full_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developers
 built with gcc 13.2.0 (Rev5, Built by MSYS2 project)
 configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
 libavutil 59. 8.100 / 59. 8.100
 libavcodec 61. 3.100 / 61. 3.100
 libavformat 61. 1.100 / 61. 1.100
 libavdevice 61. 1.100 / 61. 1.100
 libavfilter 10. 1.100 / 10. 1.100
 libswscale 8. 1.100 / 8. 1.100
 libswresample 5. 1.100 / 5. 1.100
 libpostproc 58. 1.100 / 58. 1.100
[mpegts @ 0000029209341000] stream 0 : no PTS found at end of file, duration not set
Input #0, mpegts, from '\Tests\video.ts':
 Duration: 00:28:52.06, start: 0.980000, bitrate: 4992 kb/s
 Program 1
 Stream #0:0[0x1e1]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn
 Stream #0:1[0x1e2](swe): Audio: mp2 (mp3float) ([3][0][0][0] / 0x0003), 48000 Hz, stereo, fltp, 192 kb/s
Input #1, mpegts, from 'ENG.dvb':
 Duration: 00:28:09.88, start: 0.160000, bitrate: 8 kb/s
 Program 1
 Metadata:
 service_name : Service01
 service_provider: FFmpeg
 Stream #1:0[0x100](eng): Subtitle: dvb_subtitle (dvbsub) ([6][0][0][0] / 0x0006)
Stream mapping:
 Stream #0:0 -> #0:0 (copy)
 Stream #0:1 -> #0:1 (copy)
 Stream #1:0 -> #0:2 (copy)
Output #0, mpegts, to '\Tests\20735799_muxed.ts':
 Metadata:
 encoder : Lavf61.1.100
 Stream #0:0: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 25 fps, 25 tbr, 90k tbn
 Stream #0:1(swe): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, fltp, 192 kb/s
 Stream #0:2(swe): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
Press [q] to stop, [?] for help
[out#0/mpegts @ 000002920a155380] video:951379KiB audio:40595KiB subtitle:1389KiB other streams:0KiB global headers:0KiB muxing overhead: 3.385295%
size= 1026992KiB time=00:27:25.74 bitrate=5112.1kbits/s speed=75.3x



Can anyone help me out ? I'm I missing something that is needed for older divaces (divece in question is a Samsung SMT-S5140 STB).


-
H264 streamed video stutter and freeze with MediaCodec, Android 4.1.2
5 mars 2015, par WajihI have been trying my heart out to remove the stutter from an android RTSP client.
Here is my setup- FFMPEG server streams a live video on Win7. The video is 1200x900 in size. The video streamed is in H264 format.
- I receive the video packets on android (4.1.2) clinet under JNI which pushes the packet to java - Device is a Samsung Tab4
- Packets are decoded using MediaCodec. Once call from JNI to push the packets into MediaCodec, another thread in Java tries to de-queue the data and display them to a SurfaceView (its a GLSurfaceView)
Despite my efforts of using queue to buffer the packets, changing wait times to 0,-1, 1000000, i am unable to get a clean streamed video. I understand that there is some packet loss (1% to 10%), but I am getting a broken video, with stutter (some call it even jitter). Green patches, pink screens, gray slices. You name it, it is there, the problem seems to be exaggerated when there is a fast movement in the video.
At the moment I am not sure where the problem lies, I tried a windows version of the client (with ffmpeg decoding) and it works smoothly despite the packet loss.What am I doing wrong ? Any guidance is appreciated.
Below is the client end code for Android and the server end FFMPEG settings I read from a config file.// Function called from JNI
public int decodeVideo(byte[] data, int size, long presentationTimeUs, boolean rtpMarker, int flag)
{
if(vdecoder == null)
return -1;
if(currVInbufIdx == -1) {
vdecoderInbufIdx = vdecoder.dequeueInputBuffer(1000000); //1000000/*1s*/
if(vdecoderInbufIdx < 0) {
Log.d("log","decodeVideo@1: frame dropped");
vdecoderRet = -1;
return vdecoderRet;
}
currVInbufIdx = vdecoderInbufIdx;
currVPts = presentationTimeUs;
currVFlag = flag;
inputVBuffers[currVInbufIdx].clear();
}
vdecoderPos = inputVBuffers[currVInbufIdx].position();
vdecoderRemaining = inputVBuffers[currVInbufIdx].remaining();
if(flag==currVFlag && vdecoderRemaining >= size && currVPts == presentationTimeUs
&& rtpMarker == false
/*&&(pos < vbufferLevel || vbufferLevel<=0)*/)
{
/* Queue without decoding */
inputVBuffers[currVInbufIdx].put(data, 0,size);
}
else
{
if(flag==currVFlag && vdecoderRemaining >= size && currVPts == presentationTimeUs
&& rtpMarker)
{
inputVBuffers[currVInbufIdx].put(data, 0, size);
queued = true;
}
Log.d("log", "decodeVideo: submit,"
+ " pts=" + Long.toString(currVPts)
+ " position="+inputVBuffers[currVInbufIdx].position()
+ " capacity="+inputVBuffers[currVInbufIdx].capacity()
+ " VBIndex="+currVInbufIdx
);
vdecoder.queueInputBuffer(currVInbufIdx, 0, inputVBuffers[currVInbufIdx].position(), currVPts, currVFlag);
//
vdecoderInbufIdx = vdecoder.dequeueInputBuffer(1000000);//1000000/*1s*/
if(vdecoderInbufIdx >= 0)
{
currVInbufIdx = vdecoderInbufIdx;
currVPts = presentationTimeUs;
currVFlag = flag;
inputVBuffers[currVInbufIdx].clear();
//if(queued == false)
{
inputVBuffers[vdecoderInbufIdx].put(data, 0, size);
}
}
else
{
currVInbufIdx = -1;
currVPts = -1;
vdecoderRet = -1;
Log.d("log","decodeVideo@2: frame dropped");
}
}
return vdecoderRet;
}And here we have the thread that calls for a render
// Function at android. Called by a separate thread.
private void videoRendererThreadProc() {
if(bufinfo == null)
bufinfo = new MediaCodec.BufferInfo();
videoRendered = false;
Log.d("log", "videoRenderer started.");
while(!Thread.interrupted() && !quitVideoRenderer)
{
Log.d("log", "videoRendererThreadProc");
outbufIdx = vdecoder.dequeueOutputBuffer(bufinfo,1000000);//500000
switch (outbufIdx)
{
case MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED:
Log.d("log", "decodeVideo: output buffers changed.");
// outputBuffers = vdecoder.getOutputBuffers();
break;
case MediaCodec.INFO_OUTPUT_FORMAT_CHANGED:
Log.d("log", "decodeVideo: format changed - " + vdecoder.getOutputFormat());
break;
case MediaCodec.INFO_TRY_AGAIN_LATER:
// Log.d("log", "decodeVideo: try again later.");
break;
default:
// decoded or rendered
videoRendered = true;
vdecoder.releaseOutputBuffer(outbufIdx, true);
//Log.d("log", "decodeVideo: Rendering...!!!.");
}
}
// flush decoder
//vdecoder.queueInputBuffer(0, 0, 0, 0, MediaCodec.BUFFER_FLAG_END_OF_STREAM);
outbufIdx = vdecoder.dequeueOutputBuffer(bufinfo, 1000000);//10000
if(outbufIdx >= 0)
{
vdecoder.releaseOutputBuffer(outbufIdx, true);
}
bufinfo = null;
videoRendered = false;
//
Log.d("log", "videoRenderer terminated.");
}And the ffmpeg setting at server at as follows.
[slices] = 4 # --slices
[threads] = 4 # --threads
[profile] = high # --profile main|baseline
[preset] = faster # --preset faster|ultrafast
[tune] = zerolatency # --tune -
FFMPEG conversion error from MKV to MP4 using libfdk_aac codec
23 août 2014, par Charlie BrownThe purpose of doing this is because my "Smart" samsung TV doesn’t play MKV files.
This thread mentions that there is no need for video conversion, just changing the container might suffice. After reading multiple threads on how to change the container of MKV to MP4, I downloaded and compiled the FFMPEG with libfdk_aac support from here. I tried converting a sample MKV file using this command :
ffmpeg -i "C:\VideoTest\Sample1.mkv" -c:v copy -c:a libfdk_aac -b:a 384k "C:\VideoTest\Sample2.mp4"
but getting the following errors (copied from command prompt) :
[hevc @ 0000000000308ae0] Could not find ref with POC 113
[hevc @ 0000000000308ae0] Could not find ref with POC 111
[hevc @ 0000000000308ae0] Could not find ref with POC 109
[hevc @ 0000000000308ae0] Could not find ref with POC 107
Input #0, matroska,webm, from 'C:\VideoTest\Sample-1.mk
v':
Metadata:
encoder : libebml v1.3.0 + libmatroska v1.4.1
creation_time : 2014-07-16 08:54:02
Duration: 00:00:58.68, start: 0.042000, bitrate: 3520 kb/s
Chapter #0.0: start 0.000000, end 58.717000
Metadata:
title : Chapter 4
Stream #0:0: Video: hevc (Main), yuv420p(tv), 1920x816, SAR 1:1 DAR 40:17, 2
4 fps, 24 tbr, 1k tbn, 1k tbc (default)
Metadata:
_STATISTICS_WRITING_APP: mkvmerge v7.0.0 ('Where We Going') 64bit built on
Jun 9 2014 15:16:27
_STATISTICS_WRITING_APP-eng: mkvmerge v7.0.0 ('Where We Going') 64bit buil
t on Jun 9 2014 15:16:27
_STATISTICS_WRITING_DATE_UTC: 2014-07-16 08:54:02
_STATISTICS_WRITING_DATE_UTC-eng: 2014-07-16 08:54:02
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
BPS : 2733260
BPS-eng : 2733260
DURATION : 00:00:58.667000000
DURATION-eng : 00:00:58.667000000
NUMBER_OF_FRAMES: 1408
NUMBER_OF_FRAMES-eng: 1408
NUMBER_OF_BYTES : 20044023
NUMBER_OF_BYTES-eng: 20044023
Stream #0:1: Audio: dts (DTS), 48000 Hz, 5.1(side), fltp, 768 kb/s (default)
Metadata:
_STATISTICS_WRITING_APP: mkvmerge v7.0.0 ('Where We Going') 64bit built on
Jun 9 2014 15:16:27
_STATISTICS_WRITING_APP-eng: mkvmerge v7.0.0 ('Where We Going') 64bit buil
t on Jun 9 2014 15:16:27
_STATISTICS_WRITING_DATE_UTC: 2014-07-16 08:54:02
_STATISTICS_WRITING_DATE_UTC-eng: 2014-07-16 08:54:02
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
BPS : 767986
BPS-eng : 767986
DURATION : 00:00:58.625000000
DURATION-eng : 00:00:58.625000000
NUMBER_OF_FRAMES: 5496
NUMBER_OF_FRAMES-eng: 5496
NUMBER_OF_BYTES : 5627904
NUMBER_OF_BYTES-eng: 5627904
Stream #0:2(eng): Subtitle: hdmv_pgs_subtitle, 1920x1080 (default)
Metadata:
_STATISTICS_WRITING_APP: mkvmerge v7.0.0 ('Where We Going') 64bit built on
Jun 9 2014 15:16:27
_STATISTICS_WRITING_APP-eng: mkvmerge v7.0.0 ('Where We Going') 64bit buil
t on Jun 9 2014 15:16:27
_STATISTICS_WRITING_DATE_UTC: 2014-07-16 08:54:02
_STATISTICS_WRITING_DATE_UTC-eng: 2014-07-16 08:54:02
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
BPS : 17485
BPS-eng : 17485
DURATION : 00:00:56.750000000
DURATION-eng : 00:00:56.750000000
NUMBER_OF_FRAMES: 40
NUMBER_OF_FRAMES-eng: 40
NUMBER_OF_BYTES : 124036
NUMBER_OF_BYTES-eng: 124036
Output #0, mp4, to 'C:\VideoTest\Sample.mp4':
Metadata:
encoder : Lavf56.1.100
Chapter #0.0: start 0.000000, end 58.675000
Metadata:
title : Chapter 4
Stream #0:0: Video: hevc ([35][0][0][0] / 0x0023), yuv420p, 1920x816 [SAR 1:
1 DAR 40:17], q=2-31, 24 fps, 16k tbn, 1k tbc (default)
Metadata:
_STATISTICS_WRITING_APP: mkvmerge v7.0.0 ('Where We Going') 64bit built on
Jun 9 2014 15:16:27
_STATISTICS_WRITING_APP-eng: mkvmerge v7.0.0 ('Where We Going') 64bit buil
t on Jun 9 2014 15:16:27
_STATISTICS_WRITING_DATE_UTC: 2014-07-16 08:54:02
_STATISTICS_WRITING_DATE_UTC-eng: 2014-07-16 08:54:02
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
BPS : 2733260
BPS-eng : 2733260
DURATION : 00:00:58.667000000
DURATION-eng : 00:00:58.667000000
NUMBER_OF_FRAMES: 1408
NUMBER_OF_FRAMES-eng: 1408
NUMBER_OF_BYTES : 20044023
NUMBER_OF_BYTES-eng: 20044023
Stream #0:1: Audio: aac (libfdk_aac) ([64][0][0][0] / 0x0040), 48000 Hz, 5.1
, s16, 128 kb/s (default)
Metadata:
_STATISTICS_WRITING_APP: mkvmerge v7.0.0 ('Where We Going') 64bit built on
Jun 9 2014 15:16:27
_STATISTICS_WRITING_APP-eng: mkvmerge v7.0.0 ('Where We Going') 64bit buil
t on Jun 9 2014 15:16:27
_STATISTICS_WRITING_DATE_UTC: 2014-07-16 08:54:02
_STATISTICS_WRITING_DATE_UTC-eng: 2014-07-16 08:54:02
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
BPS : 767986
BPS-eng : 767986
DURATION : 00:00:58.625000000
DURATION-eng : 00:00:58.625000000
NUMBER_OF_FRAMES: 5496
NUMBER_OF_FRAMES-eng: 5496
NUMBER_OF_BYTES : 5627904
NUMBER_OF_BYTES-eng: 5627904
encoder : Lavc56.0.101 libfdk_aac
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (dts (dca) -> aac (libfdk_aac))
Press [q] to stop, [?] for help
[mp4 @ 0000000003be0500] Invalid DTS: 656 PTS: -672 in output stream 0:0
av_interleaved_write_frame(): Invalid argument
[libfdk_aac @ 00000000042fa640] Trying to remove 1024 samples, but the queue is
empty
[mp4 @ 0000000003be0500] Encoder did not produce proper pts, making some up.
[libfdk_aac @ 00000000042fa640] Trying to remove 1024 samples, but the queue is
empty
frame= 2 fps=0.0 q=-1.0 Lsize= 96kB time=00:00:00.04 bitrate=18415.0kbit
s/s
video:95kB audio:1kB subtitle:0kB other streams:0kB global headers:0kB muxing ov
erhead: 0.570364%
Conversion failed!Also tried using this command :
ffmpeg -i input.wav -c:a libfdk_aac -b:a 128k output.mp4
But this screws up the video quality and I start seeing some bad pixelated patches during the playback.
Any help would be appreciated.
Just an FYI : I got this far by reading blogs and posts. I have 0 knowledge about video conversion.